如何使用WCF服务和javascript表单post上传.doc文件

How to upload a .doc file using WCF service and javascript form post

本文关键字:post 上传 doc 文件 表单 javascript 何使用 WCF 服务      更新时间:2023-09-26

我试图从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

以下是有用的链接:

使用jquery 将文件上传到wcf

使用HTML5和/或jQuery 将文件上传到WCF服务

http://www.codeproject.com/Articles/327420/WCF-REST-Service-with-JSON

http://www.codeproject.com/Articles/166763/WCF-Streaming-Upload-Download-Files-Over-HTTP