1

次のような説明付きの画像をアップロードしたい:

data = '{"filename":"' + myfilename + '", "file":"' + file + '", "description":"' +
    description + '"}';

$.ajax({
    type: "POST",
    url: "filehandler.ashx",
    data: data,
    success: function (result) {
        alert(result);
    },
    error: function () {
        alert("There was error uploading file!");
    }
});

どうすればできますか?HttpPostedFile汎用ハンドラーのように ファイルを読み取ることができません。context.Request.Formまた、鍵はありません。

4

2 に答える 2

5

申し訳ありませんが、問題の内容を完全に投稿しなかった場合。とにかく私はそれを動作させました。

var data = new FormData();

data.append("name", filename);
data.append("file", file);

ジェネリックハンドラー内

HttpPostedFile file = context.Request.Files["file"];
string fileName = context.Request.Form["filename"];

FormDataオブジェクトの使用

于 2012-08-15T10:31:54.153 に答える
2

ajax を使用してファイルを投稿することはできません。同じ結果を得るには、iframe に投稿する必要があります。

これは私がしたことです

var form = "#myform";
var url = "http://post.it/";
var iframeName = 'iframePost' + (new Date()).getTime(); 
$('<iframe id="'+iframeName+'" name="' + iframeName + '" style="display:none;"/>').appendTo('body');
$(form).attr('target',iframeName)
    .attr('action',url)
    .attr('enctype','multipart/form-data')
    .append('<input type="hidden" name="_iframe" value="' + iframeName + '" />');
    form.submit();

コールバックを設定するには、iframe が次のようなスクリプトを返すようにします。

window.parent.callBack(data);
于 2012-08-15T08:35:37.593 に答える