我正在尝试将数据上传到服务器并且数据在 blob 中

I am trying to upload data to server and data is in blob

我正在尝试将数据上传到服务器并且数据在 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]);

}

处理程序是 .ashx 文件,它将我的数据保存到 sql server.I 不知道我缺少什么。

FileReader() .readAsDataURL() 方法 returns 结果异步。您可以在 FileReaderload 事件中将 dataURL 传递给 uploadData() 调用。另请注意,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]);

}