2011-04-19 41 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