2015-11-22 40 views
1

我使用Jquery.ajax 我有收到文件ASP.NET 5:上傳過的WebAPI

[HttpPost] 
[ActionName("import")] 
public int Import([FromBody]IFormFile upload) 

內導入方法可以節省Request.Body的ASP.NET方法發送文件的WebAPI文件它看起來是正確的:

------ WebKitFormBoundaryZLHvtGDqa5zp0JHB Content-Disposition:form-data; NAME = 「上傳」; filename =「test.b3d」 Content-Type:application/octet-stream

Hello world content!

但上傳變量始終爲空!我應該修復哪些文件內容「上傳」變量?

PS:

// Create a formdata object and add the files 
    var data = new FormData(); 
    data.append("upload", file.files[0]); 

    jQuery.ajax({ 
     type: "POST", 
     url: "/api/designer/import", 
     contentType: "application/json", 
     dataType: 'json', 
     processData: false, 
     data: data 
    }) 

在鉻的請求報頭::我使用此代碼發送文件到服務器

Accept:application/json, text/javascript, */*; q=0.01 
Accept-Encoding:gzip, deflate 
Accept-Language:en-US,en;q=0.8,ru;q=0.6 
Connection:keep-alive 
Content-Length:28855 
Content-Type:application/x-www-form-urlencoded 
Host:localhost:64867 
Origin:http://localhost:64867 
Referer:http://localhost:64867/ 
User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36 
X-Requested-With:XMLHttpRequest 
+0

你能分享請求頭看起來怎麼樣的鍍鉻? –

+0

是的,我已經將它添加到問題中了。 – Rem

回答

1

卸下FromBody屬性裝飾上的參數,以使application/x-www-form-urlencoded格式的結合數據。

這是對現有Web API工作原理的改變。您可以使用比application/x-www-form-urlencoded其他情況下FromBody,像application/jsonapplication/xml

+0

它沒有幫助...也許我在jquery.ajax調用中弄錯了嗎?你能看看它嗎(我在問題的底部添加了代碼) – Rem