2011-05-26 77 views
5

我必須使用jQuery將文件發送到我的服務器。我如何使用JSON來做到這一點?如何使用JSON和jQuery將文件發送到服務器

文件類型不重要,我打算在我的服務器應用程序上收到一個byteArray或類似的東西。

如果它有幫助我正在使用ASP.NET應用程序,但我的問題不是我在服務器端處理的方式,問題是如何使用jQuery發送文件數據。

我發現了一些使用Flash文件的jQuery上傳插件,其他人不使用Flash,但我真正想知道的是該過程是如何工作的,而不僅僅是使用某人已經創建的東西!

回答

4

jQuery是JavaScript。我想你的意思是通過Ajax發送無法完成的數據。您可以做的最好的事情是將iframe用於將文件上傳到臨時目錄(而不是默認臨時目錄)的頁面,然後將該信息返回到父頁面以獲取文件的保存位置,然後使用它。

無法使用Ajax將文件上載到服務器。這太不安全了。

我收回上述NOW

聲明現在,您可以使用Javascript這對於一個新手來說,瞭解非常複雜的,但現在可能的情況下,這一問題被回答不像發佈/下載文件的日期

Using HTML5 file uploads with AJAX and jQuery

2

文件上傳不會通過AJAX請求工作。它需要是完整的HTTP請求(POST)。任何使用的jQuery插件通常使用基於Flash或Java的applet,或使用隱藏在頁面上的iframe完成真正POST的隱藏iframe技巧。

1

你可以使用$ .ajax調用一個HTTP Post,你不需要做任何手工操作文件內容到json。如果您的表單包含輸入(type =「file」),則有效內容將位於HTTP請求中。如果你能給我更多關於你的代碼的細節,我可以發送一個代碼示例。

+0

我正在規劃這個過程,只是檢查可能性。如果你有一些工作代碼,這可以幫助我非常欣賞。 tnkx – 2011-05-26 17:11:33

+0

ASP.NET Web窗體或MVC? – 2011-05-26 20:05:27

+0

我的問題不是服務器端,我不知道如何發送文件到服務器使用像jQuery的客戶端腳本。但我使用webforms – 2011-05-26 20:15:20

-2

我強烈建議爲此使用valum的plugin。它有很多支持,並且在瀏覽器開始實施HTML5支持(如FileReader等)時一直更新。使發送「AJAX」文件請求變得更容易和更輕鬆。

https://stackoverflow.com/search?q=valums

編輯:對不起,沒有充分閱讀您的問題 - 我讀標題,讀第幾段,我想我知道你要找的人。恰巧是最後一段有一個我沒有看到的排除條款。

+1

正如我所提到的,我期待知道它的過程如何工作! – 2011-05-26 17:40:58

+0

糟糕,我以爲你在問一個簡潔的編程問題。閱讀來源。 – 2011-05-26 17:49:08

+0

非常感謝您的回覆,但是您提到了(最後一段)我並未在零部件上進行認證!我很想了解這個過程! – 2011-05-26 17:59:18

1

我使用$ .ajaxFileUpload試過(http://www.phpletter.com/Demo/AjaxFileUpload-Demo/),如果你正在使用ASP.NET MVC,你可以如下

檢索的文件
public ActionResult UploadFiles(List<HttpPostedFileBase> uFile) 

用法$ .ajaxFileUpload的:

$.ajaxFileUpload 
(
    { 
     url: "/Controller/UploadFiles", 
     secureuri: false, 
     fileElementId: 'uFile', // the id of the file input controls holding the references to the files 
     dataType: 'json', 
     success: function (data, status) { 
      // needs to handle the json return 
     }, 
     error: function (data, status, e) { 
      // same as error 
     } 
    } 
) 

對我來說它工作得很好。

相關問題