2013-07-01 6 views
0

У меня есть приложение ASP.NET/C#, которое я разрабатываю. Я использую BlueImp File Uploader, чтобы попытаться загрузить файл в мой обработчик ASHX. Все работает нормально. Что делает обработчик ASHX, так это сохранение изображения в базе данных SQL Server.Загрузка файла BlueImp/jQuery

Моя проблема заключается в том, что когда мой обработчик выполняется, ему необходимо передать идентификатор с ним, поэтому он знает, какая запись хранит изображение. Прямо сейчас моя форма - это все клиентская сторона/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, прямо сейчас хранятся в скрытых делах. Я могу получить к нему доступ так:

var id = $('#divHostApplicationId').text(); 

Как передать этот идентификатор на мой обработчик ASHX? Я знаю, что могу передать его как параметр запроса с параметром «url», но, похоже, Blueimp не позволяет динамически изменять URL-адрес. Как только его набор, он, кажется, установлен навсегда. Есть идеи?

+0

Вы можете просто добавить его в этой строке 'URL: 'W9UploadHandler.ashx',' 'в качестве URL: 'W9UploadHandler.ashx ImgID =? + Id', где id - это '$ ('# divHostApplicationId'). text()' – Aristos

+0

@Aristos - я не могу, потому что этот URL-адрес настроен, как только загружается страница. Мне нужно изменить этот URL позже, после того, как он уже настроен. – Icemanind

+0

Вы имеете в виду, что этот параметр установлен в dll или что-то в этом роде? – Aristos

ответ

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; 
    } 
}); 
Смежные вопросы