我想上传一张描述如下的图片:
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
也没有任何密钥。
答案 0 :(得分: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"];
答案 1 :(得分: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);