wcf rest 中的文件上传:读取时流中的特殊字符被替换
File upload in wcf rest: special characters in stream gets replaced when reading
我正在尝试编写一个 WCF Restful api 来将文件上传到服务器。我浏览了 Multipart Parser 的帖子,并尝试使用它们。我面临的问题是,在读取流内容时,图像文件中的一些特殊字符被替换,我最终得到的文件几乎是原始大小的两倍。
示例:
下面是图像文件中的一行
-¦ã09°O ð -ÍQa:BÐ`QËÎâ<Îä\Îæ|ÎèœÎê¼Îì, ;
这将转换为
�-���09�O � -�Qa:B�`Q���<��\��|������, � ;
我的假设是这与用于读取流的编码有关,因此我尝试为此使用 StreamReader,但没有成功。
MultipartParser parser;
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream))
{
var encoding = reader.CurrentEncoding;
parser.Parse(stream, encoding);
}
已编辑:
UI张
<form id="testForm" action="--service url--" method="POST" enctype="multipart/form-data">
<table>
<tr><td>File:</td><td><input type="file" name="Contents"></td></tr>
<tr><td/><td><input type="submit" value="Send"></td></tr>
</table>
</form>
这是我从 fiddler 那里得到的请求
Cache-Control: max-age=0
Content-Length: 278783
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryokLIHmhMy8bbelA6
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
------WebKitFormBoundaryokLIHmhMy8bbelA6
Content-Disposition: form-data; name="Contents"; filename="someimage.jpg"
Content-Type: image/jpeg
--file content here---
------WebKitFormBoundaryokLIHmhMy8bbelA6--
感谢大家的帮助,但问题似乎出在编码上。
使用这个:Encoding.GetEncoding("iso-8859-1"),一些修整解决了它。
我正在尝试编写一个 WCF Restful api 来将文件上传到服务器。我浏览了 Multipart Parser 的帖子,并尝试使用它们。我面临的问题是,在读取流内容时,图像文件中的一些特殊字符被替换,我最终得到的文件几乎是原始大小的两倍。
示例: 下面是图像文件中的一行
-¦ã09°O ð -ÍQa:BÐ`QËÎâ<Îä\Îæ|ÎèœÎê¼Îì, ;
这将转换为
�-���09�O � -�Qa:B�`Q���<��\��|������, � ;
我的假设是这与用于读取流的编码有关,因此我尝试为此使用 StreamReader,但没有成功。
MultipartParser parser;
using (System.IO.StreamReader reader = new System.IO.StreamReader(stream))
{
var encoding = reader.CurrentEncoding;
parser.Parse(stream, encoding);
}
已编辑:
UI张
<form id="testForm" action="--service url--" method="POST" enctype="multipart/form-data">
<table>
<tr><td>File:</td><td><input type="file" name="Contents"></td></tr>
<tr><td/><td><input type="submit" value="Send"></td></tr>
</table>
</form>
这是我从 fiddler 那里得到的请求
Cache-Control: max-age=0
Content-Length: 278783
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryokLIHmhMy8bbelA6
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
------WebKitFormBoundaryokLIHmhMy8bbelA6
Content-Disposition: form-data; name="Contents"; filename="someimage.jpg"
Content-Type: image/jpeg
--file content here---
------WebKitFormBoundaryokLIHmhMy8bbelA6--
感谢大家的帮助,但问题似乎出在编码上。 使用这个:Encoding.GetEncoding("iso-8859-1"),一些修整解决了它。