Jsp和asp.Net就用一样不行吗,楼主你也不累.
解决方案 »
- vs给数据库datetime类型赋值的问题
- C# 如何验证化学式
- 求一个思路或例子--工序流程的表示
- 如何将多个excel合并为一个excel多个sheet
- 请问DatagridBoolColumn这种类型的列里边的checkbox如何单击就能选中?winform
- 哪儿可以下载椭圆加密算法程序?
- System.Data.SqlClient.SqlDataReader中的数据到底是如何实现的
- 流程控制是如何做出来的。
- 如何检测到鼠标是否点击模式窗体之外的位置
- c#多串口通讯问题
- 菜鸟问题:C#.net中如何进行数据库连接?
- C# 通过ADSI在Active Directory中新建帐号,以及开通Exchange中的邮箱?
上件文件,如果存在,显示对话框由用户确认是否覆盖...
初始化:在主目录下先建好待上传文件存储目录upload前台文件代码:<%@ Page CodeBehind="test.aspx.cs" Language="c#" AutoEventWireup="false" Inherits="BKSoft.test" %>
<HTML>
<HEAD>
<meta content="False" name="vs_showGrid">
</HEAD>
<body>
<form id="frm1" name="frm1" encType="multipart/form-data" runat="server">
<INPUT id="OverrideFile" type="hidden" name="overrideFile"> <INPUT id="TempFileName" type="hidden" name="tempFileName"><INPUT id="FileName" type="hidden" name="fileName">
<P>
<SCRIPT language="javascript">
function showMessage(fileName,tempFileName)
{
if(confirm("该文件服务器上已存在,覆盖吗?"))
{
document.frm1.overrideFile.value ="true";
}
else
{
document.frm1.overrideFile.value ="false";
}
document.frm1.fileName.value = fileName;
document.frm1.tempFileName.value = tempFileName;
document.frm1.submit();
}
</SCRIPT>
<asp:Label Runat="server" ID="lbl" Visible="False" />
</P>
<P><br>
<input id="UploadedFile" type="file" size="35" name="UploadedFile" runat="server">
<asp:button id="Upload" onclick="Upload_Click" runat="server" Text="Upload"></asp:button></P>
<P>
<asp:Label Runat="server" ID="StatusMessage" Visible="False" /></P>
</form>
</body>
</HTML>
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
namespace BKSoft
{
/// <summary>
/// test 的摘要说明。
/// </summary>
public class test : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Button Upload;
protected System.Web.UI.HtmlControls.HtmlInputFile UploadedFile;
protected System.Web.UI.WebControls.Label StatusMessage;
protected System.Web.UI.WebControls.Label lbl;
private string folderPath="upload/";
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
lbl.Visible = false;
string overrideFile = Request.Form["overrideFile"];
string fileName = Request.Form["fileName"];
string tempFileName = Request.Form["tempFileName"];
if (overrideFile=="true" || overrideFile=="false")
OverrideFile(overrideFile,tempFileName,fileName);
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
//
// CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Upload.Click += new System.EventHandler(this.Upload_Click);
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
private void OverrideFile(string overrideFile,string sourceFileName,string destFileName)
{
string destDir = Server.MapPath(folderPath);
string sourceFile = Path.Combine(destDir, sourceFileName);
string destFile = Path.Combine(destDir, destFileName);
if (overrideFile=="true")
{
File.Copy(sourceFile,destFile,true);
File.Delete(sourceFile);
}
else
File.Delete(sourceFile);
}
public void Upload_Click(object sender, System.EventArgs e)
{
if (UploadedFile.PostedFile != null && UploadedFile.PostedFile.FileName.Length > 0 )
{
string destDir = Server.MapPath(folderPath);
try
{
// save the to the current directory
string fileName = Path.GetFileName(UploadedFile.PostedFile.FileName);
string destFile = Path.Combine(destDir, fileName);
if (File.Exists(destFile))
{
string tempFileName = "temp" + fileName;
destFile = Path.Combine(destDir, tempFileName);
UploadedFile.PostedFile.SaveAs(destFile);
lbl.Text = "<script>showMessage('" + fileName + "','" + tempFileName + "'); </script>";
lbl.Visible = true;
//Response.End();
//Response.Redirect("test.aspx");// refresh the page
}
else
{
UploadedFile.PostedFile.SaveAs(destFile);
Response.Redirect("test.aspx");// refresh the page
}
}
catch (Exception exc)
{
StatusMessage.Text = exc.Message;
StatusMessage.Visible = true;
}
} }
}
}
不好意思,昨天晚上有事不能上网。能和我说说你的设计思路吗?
前台的JavaScript函数一看就会明白,通过对话框决定用户是否覆盖的要求,保留此状态至量Hidden变量中,同时把由服务器端传来的参数也保存另外两个hidden元素中.然后,例表格提交.即frm.submit
表格以post方式提交(因为表格用的是runat=server 有提交给自己本身)
在后台Page_Load事件中,把三个hidden变量从表格读出,并进行判断.如果覆盖文件的状态变量不为空,且,为"true"或"false"则,调用相关参数,处理与文件相关的覆盖操作...否则,不予处理...(第一次启用时就是不予处理)后台传递参数时未用Response.Write,而是为一个Label控件赋Text属性,并使Visible为True,这样,脚本就由后台传到前台了.前台代码,显示,并调用已经写好的脚本,以寻求用户是否覆盖的意见,又由表格提交传到后台,进一步处理...