Получение нового имени файла, сохраненного с помощью ajax AsyncFileUpload? - PullRequest
4 голосов
/ 17 декабря 2010

Я сохраняю файл с плагином asyncfileupload ajax из инструментария ajax, и когда я сохраняю его, я изменяю имя файла (чтобы избежать нескольких файлов с одинаковым именем).

После загрузки файла пользователю необходимо знать, как был назван файл, поэтому я использую этот код javascript в событии onclientuploadcomplete.

function UploadComplete(sender, args) {
    alert(args.get_fileName());
}

Это работает, за исключением того, что оно получает старое имя, а не новое имя (которое определяется на стороне сервера). Есть ли способ заставить его вернуть новое имя, а не старое имя? Или какой-нибудь способ обойти это?

Это мой код в коде получения нового имени файла:

string filename = DateTime.Now.ToString("dMyHmsf") + e.filename;
string strPath = MapPath("~/SavedImages/") + filename;    
AsyncFileUpload1.SaveAs(strPath);

Ответы [ 2 ]

3 голосов
/ 23 марта 2012

Я получил ответ от 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); 
}
1 голос
/ 17 декабря 2010

Как насчет записи имени файла в скрытое поле в коде и считывания этого значения в вашем клиентском коде?

...