0

さて、キャンバス画像を作成し、canvas.toDataURL("image/png") を実行するだけでデータ URL を取得する MVC アプリがあります。私がやりたいのは、これをユーザーのファイル システムに保存することです。

次のようにして、javascriptだけでやってみました:

var saveUrl = canvas.toDataURL("image/png");
saveUrl = saveUrl.replace("image/png", "application/octet");
window.open(saveUrl);

downloadしかし、それは拡張子などのない名前のファイルを私に与えるだけです。保存ダイアログを取得し、ファイルにタイプと名前を付けて、それをユーザーのディスクに保存したいと思います。

そのため、データをサーバーに投稿し、応答ヘッダーを使用して、画像を保存しようとしていることをブラウザーに伝えることができると考えましたが、これを行う良い方法が見つかりません。ASP.NET MVC を使用しています。これを行うための簡単な方法はありますか?

4

1 に答える 1

0

これが私が最終的に得たものです:

投稿画像:

[HttpPost]
public void PostImageForPrinting(string dataUrl)
{
    SomePersistentObject.CurrentDataURL = dataUrl;
}

サーブ画像:

public ActionResult PrintMission()
{
    var url =
            SomePersistentObject.CurrentDataURL.Substring(SomePersistentObject.CurrentDataURL.IndexOf(",") + 1);
    var image = Convert.FromBase64String(url);
    return base.File(image, "image/png", "mission.png");
}

クライアント側:

var saveUrl = canvas.toDataURL("image/png");
var jsonString = JSON.stringify({ dataUrl: saveUrl });
$.ajax({
    url: "/Home/PostImageForPrinting",
    contentType: "application/json",
    type: "POST",
    data: jsonString,
    success: function (result) {
        window.location.href = "/Home/PrintMission";
    }
});
于 2013-04-12T17:01:16.403 に答える