我正在使用 ajax 工具包中的 asyncfileupload ajax 插件保存一个文件,当我保存它时,我正在更改文件名(以避免多个文件具有相同的名称)。
文件上传后,用户需要知道文件的名称,所以我在 onclientuploadcomplete 事件中使用了这段 javascript 代码。
function UploadComplete(sender, args) {
alert(args.get_fileName());
}
除了获取旧名称而不是新名称(由服务器端确定)外,此方法有效。有什么办法让它返回新名称而不是旧名称?或者有什么解决方法可以实现这一点?
这是我在获取新文件名后面的代码中的代码:
string filename = DateTime.Now.ToString("dMyHmsf") + e.filename;
string strPath = MapPath("~/SavedImages/") + filename;
AsyncFileUpload1.SaveAs(strPath);
最佳答案
我从http://forums.asp.net/post/4139037.aspx得到了答案它对我有用...
从那里复制代码:
<asp:ToolkitScriptManager runat="server">
</asp:ToolkitScriptManager>
<!--This script snippet must be located below the ScriptManager-->
<script type="text/javascript">
Sys.Extended.UI.AsyncFileUpload.prototype.newFileName = null; //I did not use this line
function uploadcomplete(sender, e) {
alert(sender.newFileName);
}
</script>
<asp:AsyncFileUpload ID="AsyncFileUpload1" OnClientUploadComplete="uploadcomplete"
runat="server" OnUploadedComplete="AsyncFileUpload1_UploadedComplete1" />
背后的代码:
protected void AsyncFileUpload1_UploadedComplete1(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
ScriptManager.RegisterClientScriptBlock(this,
this.GetType(), "newfile",
"window.parent.$find('" + AsyncFileUpload1.ClientID + "').newFileName='newfile.jpg';", true);
}
关于c# - 获取使用 ajax AsyncFileUpload 保存的文件的新文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466301/