c# - 如何使用 WCF 服务和 javascript 表单发布上传 .doc 文件

标签 c# javascript jquery wcf

我尝试从 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/

相关文章:

c# - 系统UriFormatException : 'Invalid URI: The Uri scheme is too long.'

javascript - jQuery Flot 库的类别插件不起作用

javascript - 如何在 HTML/JS 中获取 MJPEG 流的快照

javascript - JQuery 从 HTML 元素 var 获取属性

javascript - jqplot对多个具有相同名称和颜色的数据系列进行分组和标记

c# - 在文本文件的每一行内的 ListView 中写入第一列和第二列行

javascript - Asp.net MVC 5 View 在使用 F5 重新加载页面之前不会呈现

c# - 是否可以使用旧二进制文件反序列化新的派生类?

javascript - 使每条 Canvas 线都可拖放

javascript - 为什么我无法让这段 javascript 代码工作?