Мне интересно, как обрабатывать двоичные данные в границах ... Сейчас мой код отправляет необработанные данные, но я не уверен, как обернуть их, чтобы увидеть мой 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 # ...
<%@ 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>
Основной рабочий процесс:
"Пользователь отправляет изображение, что-то происходит во время загрузки изображения (обновление индикатора выполнения или чего-то еще), изображение отправляется на страницу обработки, страница сохраняет изображение в свой собственный файл, на исходной странице отображается, что оно выполнено"