【发布时间】:2017-03-15 00:36:24
【问题描述】:
我正在做一个简单的 c# 通用处理程序,它应该接收表单发布。这是表格...
<form id="frmUploadImage" action="../Handlers/LocalImageUploadHandler.ashx" method="post" style="display: none">
<div>
<input style="display: none; margin-bottom: 20px" type="file" id="uploadImage" />
</div>
</form>
我有一些代码,在单击按钮时会调用输入的单击事件。加载输入后,将调用以下内容(我可以设置断点并到达此处)。
var jqxhr = $.post('../Handlers/LocalImageUploadHandler.ashx', $('#frmUploadImage').serialize())
.success(function() {
alert('worked');
})
.error(function() {
alert('failed');
});
它将显示“失败”的警报。服务器端,它在处理程序中调用它(我可以通过设置断点来验证它是否被调用)。
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/octet-stream";
var file = Convert.FromBase64String(context.Request.Form["uploadedFile"]);
//other stuff
}
有趣的是 context.Request.Form 和 context.Request.Files 属性中没有项目,即使它们正在发送。我所做的一切都没有奏效。我尝试使用 XHR、jQuery 等进行发布。我尝试将数据作为 DataUrl 从文件上传控件中提取出来,并将其序列化为 base64 编码字符串并将其放入 ajax 调用中。处理程序将收到一个帖子,但数据正在被剥离。
【问题讨论】:
-
你可能需要给你的输入元素一个
name属性。
标签: c# asp.net webforms generic-handler