1

無理だとは思いますが、質問させていただきます...

ファイルをFileResult返す がありますが、動作する場合は問題ありません。何らかの理由でエラーが発生したFileResult場合、例外エラー メッセージをユーザー画面、できればポップアップで表示したいと考えています。

成功した場合はファイルを返し、失敗した場合はメッセージを表示する Ajax 投稿を行うことはできますか?

4

3 に答える 3

3

ajax ポストを処理するためには考えられる原因ではないと思います。クライアント側で javascript ハンドラーを作成する必要があり、javascript はクライアント側でファイル IO を実行できません。

ただし、できることは、ファイルが存在し、ダウンロードできるかどうかを確認する ajax リクエストを作成することです。そうでない場合は、その要求に否定的に応答し、クライアント側でダイアログをポップアップします。成功した場合は、ファイルのダウンロード要求を行います。

于 2013-07-23T11:22:17.877 に答える
0

特にMVCとは関係ありませんが...

バイナリ データ (この場合は http 応答から取得) を処理し、それをローカル ファイル システムに保存できるXMLHttpRequest新しい HTML5 と組み合わせて使用​​できます。File System API

ここで例を参照してください: http://www.html5rocks.com/en/tutorials/file/xhr2/#toc-example-savingimages

于 2013-07-23T11:35:20.480 に答える
0

コントローラー (MyApiController) コード:

public ActionResult DownloadFile(String FileUniqueName)
    {
        var rootPath = Server.MapPath("~/UploadedFiles");
        var fileFullPath = System.IO.Path.Combine(rootPath,FileUniqueName);
        byte[] fileBytes = System.IO.File.ReadAllBytes(fileFullPath);
        return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, "MyDownloadFile");

    }

Jquery コード:

$(document).on("click"," a ", function(){ //on click of anchor tag

                var funame=$(this).attr('uname'); /*anchor tag attribute "uname" contain file unique name*/
                var url = "http://localhost:14211/MyApi/DownloadFile?FileUniqueName= " + funame;
                window.open(url);


            });
于 2018-06-07T13:21:12.383 に答える