C# HTTP请求边界JavaScript

C# HTTP请求边界JavaScript,c#,javascript,ajax,header,xmlhttprequest,C#,Javascript,Ajax,Header,Xmlhttprequest,我想知道如何处理边界中的二进制数据。。。现在我的代码正在提交原始数据,但我不确定如何包装它以供我的C#查看 这是我当前的代码 /*global window, document, XMLHttpRequest, FormData, FileReader, Uint8Array, alert, BlobBuilder, navigator */ function sendForm(filefield) { "use strict"; var reader, filedata, bb, xhr,

我想知道如何处理边界中的二进制数据。。。现在我的代码正在提交原始数据,但我不确定如何包装它以供我的C#查看

这是我当前的代码

/*global window, document, XMLHttpRequest, FormData, FileReader, Uint8Array, alert, BlobBuilder, navigator */


function sendForm(filefield) {
"use strict";
var reader, filedata, bb, xhr, blobber;
filedata = document.getElementById(filefield).files[0];
reader = new FileReader();
reader.onloadend = function (evt) {
    if (evt.readyState === FileReader.Done) {
        if (navigator.userAgent.indexOf("Chrom") !== -1) {
            bb = new window.WebKitBlobBuilder();
        } else if (navigator.userAgent.indexOf("Firefox") !== -1) {
            bb = new window.MozBlobBuilder();
        } else {
            bb = new BlobBuilder();
        }
        bb.append(reader.result);
        blobber = bb.getBlob();
        xhr = new XMLHttpRequest();
        xhr.open("POST", "imageprocessor.aspx", true);
        xhr.setRequestHeader("Content-type", "image/png");
        xhr.setRequestHeader("Content-length", reader.length);
        xhr.send(blobber);
    }
};
reader.readAsArrayBuffer(filedata);
}


window.onload = function () {
"use strict";
document.getElementById("sender").onclick = function () {
    sendForm("file");
};
};
我的html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
    <title>Test</title>
    <script src="fileuploader.js" type="text/javascript"></script>
</head>

<body>
    <div>
        <input type="file" name="file" id="file" />
    </div>
    <div><input type="button" value="送る" id="sender" /></div>
</body>
</html>

试验
还有我的C#


私有无效页面加载(对象发送方,System.EventArgs e)
{
int-loop1;
HttpFileCollection文件;
Files=Request.Files;//将文件集合加载到HttpFileCollection变量中。
Response.Write(Files.Count);
//arr1=Files.AllKeys;//这将把所有文件的名称放入一个字符串数组中。
//for(loop1=0;loop1”;
//Response.Write(“size=“+Files[loop1].ContentLength+”
); //Response.Write(“content-type=“+Files[loop1].ContentType+”
); // } }
基本工作流程是:


“用户提交图像,图像上传(更新进度条或其他内容)时会发生一些事情,图像被发布到处理页面,页面将图像保存到自己的文件中,源页面显示它已完成”

您没有发送MIME编码的文件,您只发送文件内容,因此
HttpRequest.Files
对您没有任何用处。使用
HttpRequest.InputStream
阅读您发布的内容。

如何发送MIME编码的文件?我一直在做研究,但我一直很困惑……我认为没有任何标准的javascript方法可以做到这一点。那个文件上传程序库可能有这样的东西。。。只读取输入流有什么问题?我想没什么。现在我很难将字节数组保存到文件中。。。隐马尔可夫模型。。。我想我会再发一封。
<%@ Page language="C#" validateRequest=false %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Text" %>
<%@ Import Namespace="System.Threading" %>
<script language="C#" runat="server">

private void Page_Load (object sender, System.EventArgs e)
{
int loop1;
HttpFileCollection Files;

Files = Request.Files; // Load File collection into HttpFileCollection variable.
Response.Write(Files.Count);
//  arr1 = Files.AllKeys;  // This will get names of all files into a string array.
//  for (loop1 = 0; loop1 < arr1.Length; loop1++)
//  {
//      Response.Write("File: " + Server.HtmlEncode(arr1[loop1]) + "<br />");
//      Response.Write("  size = " + Files[loop1].ContentLength + "<br />");
//      Response.Write("  content type = " + Files[loop1].ContentType + "<br />");
//  }

}

</script>