【发布时间】:2012-10-07 13:37:38
【问题描述】:
我需要把它包起来,但不知道怎么做:-)
基本上,我使用 jQuery 表单将文件上传到 WCF REST 服务。
客户端看起来像:
<script type="text/javascript">
$(function () {
$('form').ajaxForm(
{
url: '/_vti_bin/VideoUploadService/VideoUploadService.svc/Upload/theFileName',
type: 'post'
})
});
</script>
<form id="fileUploadForm" name="fileUploadForm" method="post" action="/_vti_bin/VideoUploadService/VideoUploadService.svc/Upload" enctype="multipart/form-data">
<input type="text" name="filename" />
<input type="file" id="postedFile" name="postedFile" />
<input type="submit" id="fileUploadSubmit" value="Do Upload" />
</form>
虽然服务器相关的sn-ps是
[WebInvoke(UriTemplate = "Upload/{fileName}", ResponseFormat = WebMessageFormat.Json)]
void Upload(string fileName, Stream fileStream);
public void Upload(string fileName, Stream stream)
{
// just write stream to disk...
}
问题是我写入磁盘的内容看起来像这样,而不是文件的内容(在我的例子中是“0123456789”):
-----------------------------7dc7e131201ea
Content-Disposition: form-data; name="MSOWebPartPage_PostbackSource"
// bunch of same stuff here
-----------------------------7dc7e131201ea
Content-Disposition: form-data; name="filename"
fdfd
-----------------------------7dc7e131201ea
Content-Disposition: form-data; name="postedFile"; filename="C:\Inter\Garbage\dummy.txt"
Content-Type: text/plain
0123456789
-----------------------------7dc7e131201ea--
问题 - 我是否应该手动解析上面得到的内容并提取与上传文件对应的最后一部分(不优雅)?或者有一种方法可以应用属性、内容类型或任何设置,以便仅将上传文件的内容放入流中?
我怀疑有,但我错过了...有什么帮助吗?
非常感谢!
【问题讨论】:
标签: wcf jqueryform