0

我有一个正在开发的 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。一旦设置,它似乎永远设置。有任何想法吗?

4

1 回答 1

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;
    }
});
于 2013-07-01T06:56:56.320 回答