我正在尝试将数据上传到服务器并且数据是blob,问题是当文件为空时它会上传但是如果文件中包含任何数据则不会 以下是我的代码
function uploadData()
{
var param = {
subjectName: $("#ipName").val(),
subjectID: $("#DocSubject").val(),
typeID: $("#DocType").val(),
year: $("#ipDate").val(),
data: dataURL.substr(dataURL.indexOf(',') + 1, dataURL.length),
};
Handler("Json", param, "UploadData");
}
var dataURL;
var handleFiles = function (event) {
var input = event.target;
var reader=new FileReader();
reader.onload=function(){
dataURL=reader.result;
var output=document.getElementById('ipSelect');
output.src=dataURL;
};
reader.readAsDataURL(input.files[0]);
}
Handler是.ashx文件,它将我的数据保存到sql server。我不知道我错过了什么。
答案 0 :(得分:0)
FileReader()
.readAsDataURL()
方法异步返回结果。您可以在dataURL
uploadData()
事件时将load
传递给FileReader
来电。另请注意,reader.result
:dataURL
是从.readAsDataURL()
返回的data URI
,而不是Blob
function uploadData(dataURL)
{
var param = {
subjectName: $("#ipName").val(),
subjectID: $("#DocSubject").val(),
typeID: $("#DocType").val(),
year: $("#ipDate").val(),
data: dataURL.substr(dataURL.indexOf(',') + 1, dataURL.length)
};
Handler("Json", param, "UploadData");
}
var dataURL;
var handleFiles = function (event) {
var input = event.target;
var reader=new FileReader();
reader.onload=function(){
dataURL=reader.result;
var output=document.getElementById('ipSelect');
output.src=dataURL;
uploadData(dataURL); // call `uploadData()` with `dataURL` as parameter
};
reader.readAsDataURL(input.files[0]);
}