如何使用 javascript 和 Httphandler 为文件上传添加带有表单元素的回调
How can I add a callback with form element for a file upload using javascript and Httphandler
我正在尝试在服务器上上传一个zip文件,将其解压缩到那里并将文件名返回给客户端。
法典:
<form id="frmUpload" action="UploadHandler.ashx" method="post">
<input id="fileUpload" name="fileToUpload" type="file" accept=".zip"/>
<input id="btnUpload" type="submit" value="Submit" />
</form>
服务器代码:
public void ProcessRequest (HttpContext context)
{
var uploadedFile=context.Request.Files["fileToUpload"];
//uploadedFile is then unzipped, filenames are extracted and put in a string
// filenames="a,b,c";
context.Response.Write(filenames);
}
我想在客户端有一个回调函数,我可以在其中访问它。
我尝试了第二种方法:
$("#frmUpload").submit(function (evt) {
// evt.preventDefault();
//var data = $("#frmUpload")[0].serialize(); // returning empty string
var form = $("#frmUpload")[0];
var file = form["fileToUpload"].value;
$.ajax({
type: "POST",
url: "UploadHandler.ashx",
data: "file="+file,
success: function (result, status, respObj) {
alert(result);
}
});
})
在这种情况下,成功回调正在执行,但是,在服务器上我没有文件对象,因为传递给服务器的数据只是zip文件的路径。如何将文件对象传递到服务器?
谢谢
不能将文件对象传递给服务器。相反,您应该将文件上载到服务器,然后服务器解压缩文件并在会话或数据库中设置一个标志,指示文件已处理。同时,您可以向服务器循环 ajax 请求请求文件状态。像这样的东西
var i=0;
for(;;){
if(i==1) return;
$.ajax({
type: "POST",
url: "UploadHandler.ashx",
data: "file="+file,
success: function (result, status, respObj) {
if(result){
alert(result);
i = 1;
}
}
});
}
相关文章:
- 使用 JavaScript 计算并添加表单输入的值
- Ionic Framework如何为带有国家代码的手机号码添加表单
- 在springmvc中动态添加表单元素
- 选择动态添加表单的元素
- 通过 jquery 添加表单
- WordPress - 访问简码 HTML 并添加表单验证以停止空表单提交
- 允许用户添加表单输入字段:为什么 append() 只工作一次
- 使用 Angular 动态添加表单输入
- JQuery 添加表单元素迭代 ID
- 使用 jQquery 动态添加表单元素
- 如何在此弹出窗口中添加表单数据
- Thymeleaf+spring+Jquery动态添加表单
- jQuery 动态添加表单域,删除表单域
- 如何在多步jquery中添加表单步骤验证(使用单选按钮)
- 为virtualmart中所需的输入字段添加表单中的星号
- 如何使用javascript随机添加表单输入值
- 从下拉菜单选择动态添加表单
- Javascript:点击添加表单
- 动态添加表单输入字段
- 用javascript添加表单