0

プロフィール画像アップロード用の AJAX ファイル アップローダーがあります。102400バイトまでの画像のみアップロードできるようにユーザーを制限したい.ファイルサイズを超えたときにJavaScriptエラーメッセージを表示する方法

コード:

protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
    {
    string workerfile = Session["LoginUserID"].ToString();
            string strFileName = string.Empty;
            string strFileType = string.Empty;
            string path = string.Empty;
            var folder = Server.MapPath("../worker/Uploads/" + workerfile);
    if (!Directory.Exists(folder))
            {
                Directory.CreateDirectory(folder);
                strFileName = DateTime.Now.ToString("MM-dd-yyyy_HHmmss");
                strFileType = System.IO.Path.GetExtension(e.FileName).ToString().ToLower();

                AjaxFileUpload1.SaveAs(Server.MapPath("../worker/Uploads/" + Session["LoginUserID"] + "/" + workerfile + "_img" + strFileType));
            }
            else
            {

                strFileName = DateTime.Now.ToString("MM-dd-yyyy_HHmmss");
                strFileType = System.IO.Path.GetExtension(e.FileName).ToString().ToLower();


                AjaxFileUpload1.SaveAs(Server.MapPath("../worker/Uploads/" + Session["LoginUserID"] + "/" + workerfile + "_img" + strFileType));

            }
}

どのようにアイデアを実行しますか? 助けてください。

4

1 に答える 1

0

残念ながら、サーバー側で何がうまくいかなかったのかについてクライアントに応答する方法はありません。つまり、これを行う正式な方法はありません。代替案は次のとおりです。

  1. AjaxFileUploadEventArgs.FileSize を使用してファイル サイズを確認します。最大値を超えている場合 (1 MB に制限しようとしているようです。正しい値は 1048576 です)、AjaxFileUploadEventArgs.PostedUrl = "ファイルが大きすぎるなど" を設定します。

  2. コントロールの OnClientUploadComplete プロパティを JS 関数の名前に設定します。JS 関数は、ファイル名文字列がそのようにフォーマットされている場合は画像を表示するか、エラー メッセージを含むウィンドウを表示します。

もちろんハックですが、うまくいきます。

于 2013-05-16T19:38:24.907 に答える