我有以下代码在程序中上传附件。在此过程中,如果客户端在上载文件中选择了相同的命名文档,该文件先前已在程序中上载,则必须为客户端提供警告消息以更改文档的名称。
代码段:
private string UploadFile()
{
string pathToSaveFile = Server.MapPath("~/Data/");
string clientFileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
string upload_data = pathToSaveFile + clientFileName;
if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.ContentLength > 0)
{
if (System.IO.File.Exists(upload_data))
{
//using Response.write
Response.Write(@"<script type='text/javascript'>alert('Rename it please.');</script>");
//ClientScriptManager
var clientScript = Page.ClientScript;
clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", "alert('Rename it please.')'", true);
//ScriptManger
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "alert('Member Registered Sucessfully');", true);
}
else
{
FileUpload1.PostedFile.SaveAs(System.IO.Path.Combine(pathToSaveFile, clientFileName));
}
}
else
{
Response.Write("Not Available");
}
return clientFileName;
}
我在程序中使用了javascript代码的类型,但它们都不起作用。代码阅读器只是读取代码并通过它。
当我提交表单b utton时,所有表单字段都被读取并保存在一个对象中,当涉及到上传部分时,将读取上述代码并将clientFileName传递给文件名对象并传递给sqlquery将其输入数据库。
它不会显示客户端更改文件名的任何警告弹出窗口。因此,相同的文件名称将传递给服务器,并且由于名称相同而开始冲突。
感谢。
答案 0 :(得分:0)
只有在您重新发布网站时才会弹出警告。 它无法在C#代码中运行。
请参阅下面的代码(仅供参考):
private bool UploadFile()
{
string pathToSaveFile = Server.MapPath("~/Data/");
string clientFileName = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);
string upload_data = pathToSaveFile + clientFileName;
if (FileUpload1.PostedFile != null && FileUpload1.PostedFile.ContentLength > 0)
{
if (System.IO.File.Exists(upload_data))
{
//using Response.write
Response.Write(@"<script type='text/javascript'>alert('Rename it please.');</script>");
//ClientScriptManager
var clientScript = Page.ClientScript;
clientScript.RegisterClientScriptBlock(this.GetType(), "AlertScript", "alert('Rename it please.')'", true);
//ScriptManger
ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "alert", "alert('Member Registered Sucessfully');", true);
return false;
}
else
{
FileUpload1.PostedFile.SaveAs(System.IO.Path.Combine(pathToSaveFile, clientFileName));
}
}
else
{
Response.Write("Not Available");
}
ViewState["FileName"] = clientFileName;
return true;
}
在函数之外使用类似这样的东西:
if(UploadFile())
//run your SQL queue
else
return;//do all the return that will repost the website.