2012-05-21 40 views
0

我使用以下代碼從android avd上傳圖片。phonegap:上傳圖片無標題信息

 var options = new FileUploadOptions(); 
     options.fileKey="file"; 
     options.fileName=imageURI.substr(imageURI.lastIndexOf('/')+1); 
     options.mimeType="text/plain"; 
     var filename = imageURI.substr(imageURI.lastIndexOf('/')+1); 
     var upload_url="http://example.com"; 
     alert(upload_url); 
     alert(filename); 

     var params = new Object(); 
     params.value1 = "test"; 
     params.value2 = "param"; 

     options.params = params; 
     options.chunkedMode = false; 
     options=null; 

     var ft = new FileTransfer(); 
     ft.upload(imageURI, upload_url, picUploadSuccess, picUploadFailed,options); 

但是這段代碼在文件中增加了一些額外的頭文件信息。如下: - * 內容配置:表單數據; NAME = 「VALUE1」;

測試 - * 內容處置:形狀數據; NAME = 「VALUE2」;

param - * Content-Disposition:form-data; NAME = 「文件」;文件名=「1.jpg」 內容類型:image/jpeg

因此,當文件存儲到服務器中時,它無法打開爲JPEG圖像。 我發現選項對象負責添加這些額外的標題信息。 我嘗試沒有選項對象通過分配空值。但仍然沒有多少額外的信息進入該文件。

期待在文件中沒有任何額外信息的情況下上載文件的建議。

回答

0

嘗試

options.mimeType="text/jpeg"; 
0

那麼,如果你把這些行:

var params = new Object(); 
params.value1 = "test"; 
params.value2 = "param"; 
options.params = params; 

你不會看到:

--* Content-Disposition: form-data; name="value1"; test 
--* Content-Disposition: form-data; name="value2"; param 

了。但是您仍然會看到:

--* Content-Disposition: form-data; name="file"; filename="1.jpg" Content-Type: image/jpeg 

由於Web服務器需要知道如何處理傳入文件。我認爲問題出現在Web服務器端,即接收文件的腳本。

+0

嗨西蒙,感謝您的回覆。是的,你是對的默認標題的事情。可以請給我更具體的解決方案,爲Web服務器的結束。我正在使用WCF Rest webservice。 – user1743247

+0

您不應該使用FileTransfer.upload將文件發送到REST服務。 FileTransfer希望你做一個表單提交而不是REST。我從來沒有使用WCF,但似乎你需要做一個AJAX帖子。 –