2011-04-19 42 views
0

我使用multipart/form-data作爲內容類型將文件從android應用程序發送到asp.net webform。但是,Request.files屬性不會被填充。讀取請求對象得到以下ASP.Net不填充Request.Files接收多部分數據

Request.Params( 「ALL_HTTP」)

「HTTP_CONNECTION:保持活動HTTP_CONTENT_LENGTH:8913 HTTP_CONTENT_TYPE:多部分/格式數據;邊界= * ** * ** * ** * ** * ** * ** * **** HTTP_HOST:192.168.1.2 HTTP_USER_AGENT:的Dalvik/1.2.0(Linux的; U; Android的2 0.2; sdk Build/FRF91)「

HTTP_CONTENT_LENGTH顯示正確的長度,我想我將不得不做一個二進制讀取,然後解析內容並存儲文件內容。有沒有人以前做過或有庫/類?可

感謝

回答

1

你是如何寫文件的請求流以下規則應該在編程方式上傳文件(二進制流)應遵循:

1)寫的邊界(也可能是任何以兩個破折號作爲前綴的東西)。下面是一個示例邊界:

private string boundary = "----" + DateTime.Now.Ticks; 

2)通過寫形式的內容配置:

Content-Disposition: form-data; name="{name}"; filename="{filename}" 

3)收件內容類型

4)寫一個空行

5)寫入的字節的請求流

6)寫入結束邊界,它標記請求的結束。它應該是以下形式:

「 - 」 +邊界+「 - 」

7)收件一個空行和沖洗(如果需要)的請求。

這裏是應如何上傳請求樣品看起來像提琴手一個HTTP調試工具內:

------ 634388181001966332

內容處置:形狀數據; NAME = 「文件」;文件名= 「cald_3d.JPG」

內容類型:應用/八位字節流

1010101001 ...(更多字節)

------ 634388181001966332--

然後在服務器上,使用Request.Files [name]訪問該文件,該名稱與指定Content Disposition時使用的名稱相同。祝你好運:)

+0

我想並沒有獲得加入新行。修復。謝謝 – Arun 2011-04-20 07:35:00

1

我已經完成了所有這些以一點點清潔的方式。你可以找到它here

歡呼

Fahar