c# - 获取使用 ajax AsyncFileUpload 保存的文件的新文件名?

标签 c# asp.net ajax asyncfileupload

我正在使用 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/

相关文章:

c# - 将word文档另存为图片

c# - System.Text.Encoding.UTF8.GetBytes 额外字节

c# - 转换器不转换文化数字格式?

c# - asp.net c# 中的日历控件

html - 为什么谷歌浏览器会忽略 li 的 'direction' ?

jquery - 使用 jquery 将内容加载到父元素中

c# - 在 C# 中使用 Lua 的最有效方法是什么?

asp.net - 这种 ASP.NET 继承共享函数做法可以接受吗?

javascript - JQUERY/HTML - 在下拉列表中选择值后显示/隐藏内容

java - Wicket:如何在 textarea 的 onkeyup 上更改标签的文本?