4

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);
4

2 に答える 2

3

私は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); 
}
于 2012-03-22T21:37:55.657 に答える
1

ファイル名をコード ビハインドの隠しフィールドに書き込み、クライアント側のコードでその値を読み取るのはどうですか?

于 2010-12-17T04:25:50.060 に答える