2013-07-01 172 views
0

我有一個ASP.NET/C#應用程序,我正在開發。我正在使用BlueImp File Uploader嘗試將文件上傳到我的ASHX處理程序。一切工作正常。 ASHX處理程序正在做的是將圖像存儲在SQL Server數據庫中。BlueImp/jQuery文件上傳

我的問題是,當我的處理程序被執行時,它需要傳遞一個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不允許您動態更改網址。一旦它成立,它似乎永遠定下來。有任何想法嗎?

+0

你能簡單的將其添加在此行'網址: 'W9UploadHandler.ashx','爲'URL: 'W9UploadHandler.ashx ImgID =?' + id',其中id是'$('#divHostApplicationId')。text()' – Aristos

+0

@Aristos - 我不能因爲該頁面一載入就設置了該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; 
    } 
});