文件未到达处理程序的方法
File not reaching till handler's method
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
$(document).ready(function () {
$("#Button1").click(function (evt) {
var fileUpload = $('[id$=FileUpload1]')[0].value.split(",");
var data = new FormData();
for (var i = 0; i < fileUpload.length; i++) {
data.append(fileUpload[i].name, fileUpload[i]);
}
var options = {};
options.url = "Handler.ashx";
options.type = "POST";
options.data = data;
options.contentType = false;
options.processData = false;
options.success = function (result) { alert(result); };
options.error = function (err) { alert(err.statusText); };
$.ajax(options);
evt.preventDefault();
});
});
这是我的jquery,下面是我的处理程序文件代码......
直到最后,我在调试时都获得了价值,但是在一次上传多个图像的座右铭中,我无法在句柄中具有任何价值
处理程序代码
public void ProcessRequest (HttpContext context) {
string filePath = "FileSave//";
foreach (string file in context.Request.Files)
{
HttpPostedFile filed = context.Request.Files[file];
filed.SaveAs(context.Server.MapPath(filePath + filed.FileName));
context.Response.Write("File uploaded");
}
}
如果您愿意,可以尝试这种方式。
$(document).ready(function () {
$("#Button1").click(function (evt) {
evt.preventDefault();
var formdata = new FormData();
var fileInput = $('#sliderFile'); //#sliderFile is the id of your file upload control
if ($(fileInput).get(0).files.length == 0)
{ //show error
return false;
}
else
{
$.each($(fileInput).get(0).files, function (index,value) {
formdata.append(value.name, value);
});
$.ajax({
url: 'Handler.ashx',
type: "POST",
dataType: 'json',
data: data,
processData: false,
contentType:false,
success: function (data) {
if (data.result) {
//return true or any thing you want to do here
}
else {
//return false and display error
}
},
error: function (data) {
//return false and display error
}
});
}
});//button click close
});//document.ready close
试试吧,让我知道
编辑:请记住,HTML5 FormData在较旧的浏览器中不可用,您的代码将静默失败。如果您需要支持较旧的浏览器,则可能需要通过测试浏览器的功能来执行渐进式增强,如果浏览器不支持FormData
则回退到标准表单 POST:
if(window.FormData === undefined) {
// The browser doesn't support uploading files with AJAX
// falling back to standard form upload
} else {
// The browser supports uploading files with AJAX =>
// we prevent the default form POST and use AJAX instead
e.preventDefault();
...
}
有关此内容的更多信息,请参阅我已接受的答案。很明显,问题是什么。这是链接
编辑:只需为那些来寻找答案的人添加这些LINK1和LINK2。
使用HttpContextBase[]
而不仅仅是HttpContext
相关文章:
- 递归使用 eval() 是检查程序执行的好方法吗?
- 如何让应用程序帮助程序方法在发送的请求为 JS 格式时工作
- 如何在grails中链接javascript引导程序方法
- 如果类有多个事件处理程序方法,如何防止多个事件执行
- 通过 JavaScript 调用小程序方法将不起作用
- 从 JavaScript 调用的小程序方法中的 return 语句
- 如何从 JavaScript 调用小程序方法
- 帮助程序方法、ActionView 和 ActionController
- 如何将帮助程序方法的输出用作 HAML 哈希中的值
- Meteor.js:如何从事件调用帮助程序方法
- 从JavaScript调用JAVA小程序方法,IE / FF对象/嵌入问题
- jQuery 事件处理程序方法 - 混合对
- 为什么不是't正在调用AngularJS表单处理程序方法
- 查询选择方法-.ready()与实用程序方法$.ready()
- 在尝试管理和访问不同组件和处理程序方法中的状态时,我可以使用RxJS与Redux/context吗
- 定义可能需要在AngularJS中修改$scope数据的实用程序/帮助程序方法的理想方式是什么
- 有没有一种程序方法可以找到javascript代码片段;显示:无”;到元素
- jQuery.post()没有触发成功处理程序方法
- window.onload从事件处理程序方法返回后调用
- 使用parseDate实用程序方法分析月份文本