我尝试从 jQuery 表单帖子上传文件。我使用了以下 html 以及 jQuery 代码:
<form id="file_upload_form" method="post" enctype="multipart/form-data" action="">
<input type="file" name="uploadcv" id="uploadcv" size="30" />
</form>
Javascript:
var url = ServiceLocation + "/UploadFile"; //ServiceLocation = my service location
$("#file_upload_form").attr("action", url);
$("#file_upload_form").submit();
在WCF部分我使用了以下服务方法
public string UploadFile(Stream inputStream)
{
const int bufferSize = 8 * 1024 * 2;
byte[] buffer = new byte[bufferSize];
int bytesRead = inputStream.Read(buffer, 0, bufferSize);
Stream outputStream = null;
string newFileName = @"D:\AllTxtFiles.doc";
outputStream = new FileInfo(newFileName).OpenWrite();
while (bytesRead > 0)
{
outputStream.Write(buffer, 0, bufferSize);
bytesRead = inputStream.Read(buffer, 0, bufferSize);
}
inputStream.Close();
outputStream.Close();
}
当我尝试上传 .txt
文件时,这有效。但是,我需要上传具有不同表格和格式的 .doc
文件。
当我尝试这样做时,AllTxtFiles.doc
包含一些无法理解的文本。
我尝试和搜索了一整天,但失败了(可能是因为我是 WCF 的新手)。谁能帮我做到这一点吗?
最佳答案
表单不能发布到流参数,只能发布到流本身:
function upload() {
var request = new XMLHttpRequest();
request.open('POST', 'wcf/WCFUploader.svc/Upload/');
request.send(filePicker.files[0]);
}
所有详细信息都可以在这里找到:
http://www.codeproject.com/Tips/757991/File-Upload-using-WCF-REST-API-and-JavaScript
关于c# - 如何使用 WCF 服务和 javascript 表单发布上传 .doc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404926/