我正在开发一个ASP.NET / C#应用程序。我正在使用BlueImp File Uploader尝试将文件上传到我的ASHX处理程序。一切都很好。 ASHX处理程序正在做的是将图像存储在SQL Server数据库中。
我的问题是,当我的处理程序执行时,它需要传递一个ID,因此它知道存储图像的记录。现在,我的表单是所有客户端/ ajax,所以没有回发。如果可能的话,我想保持这种方式。
以下是我用来调用处理程序的代码:
$('#fileupload').fileupload({
url: 'W9UploadHandler.ashx',
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
$('<p/>').text(file.name).appendTo('#files');
});
},
progressall: function (e, data) {
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css(
'width',
progress + '%'
);
}
});
我的ID,现在,存储在隐藏的div中。我可以像这样访问它:
var id = $('#divHostApplicationId').text();
如何将此ID传递给我的ASHX处理程序?我知道我可以使用'url'参数作为查询参数传递它,但似乎Blueimp不允许您动态更改URL。一旦它设置,它似乎永远设置。有什么想法吗?
答案 0 :(得分:0)
您可以使用formData:
$('#fileupload').bind('fileuploadsubmit', function (e, data) {
// The example input, doesn't have to be part of the upload form:
var input = $('#divHostApplicationId');
data.formData = {example: input.val()};
if (!data.formData.example) {
input.focus();
return false;
}
});