【发布时间】:2017-05-03 15:21:27
【问题描述】:
我正在尝试发送大小为“4682933”的 javascript blob 并输入从 Base64String 转换而来的“image/png”。我无法在服务器上检索任何内容。 FormCollection 对象始终为空。
这是我向服务器发出客户端请求的代码:
var formData = new FormData();
formData.append("data", Blobx);
var request = new XMLHttpRequest();
request.open('POST', '/Patient/pdfSavefile');
request.send(formData);
这是我用于检索文件的控制器代码。
public bool pdfSavefile(FormCollection formdata)
{
var data = formdata["data"];
}
我的 webconfig 文件中有以下内容
<httpRuntime targetFramework="4.6.2" maxRequestLength="1048576" requestValidationMode="2.0" executionTimeout="10000" />
我已经尝试了所有方法,但没有任何效果。
我将 Base64String 转换为 Blob 的代码
function base64ToBlob(base64, mime)
{
mime = mime || '';
var sliceSize = 1024;
var byteChars = window.atob(base64);
var byteArrays = [];
for (var offset = 0, len = byteChars.length; offset < len; offset += sliceSize) {
var slice = byteChars.slice(offset, offset + sliceSize);
var byteNumbers = new Array(slice.length);
for (var i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
var byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
return new Blob(byteArrays, {type: mime});
}
【问题讨论】:
-
那么,您是否将文件作为 base64 字符串发布到
pdfSavefile字段data下? -
如果我没记错的话,formdata 永远不会在 console.log 中显示其内容。
-
@scgough 不,我将其作为表单数据发布,其有效负载是从 Base64String 转换的 blob
-
在服务器端发布 base64 字符串然后转换为文件(并执行任何操作)是否可行?
-
@xale94 我没有在控制台上查看它。我确实看到我尝试发送的 Blob 数据确实包含以某种方式放置的数据我在服务器端没有收到任何内容
标签: javascript asp.net-mvc jquery-file-upload