2016-08-20 70 views
0

我想上传数据到服务器和数据是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不知道我错过了什么。

+0

凡被称为'uploadData'?除了'input.files [0]',它是从'Blob'继承的'File'对象之外,没有'Blob'出现在Question上。你是否试图在'uploadData()'调用内的'Handler(“Json”,param,“UploadData”)'上传'dataURL'? – guest271314

+0

uploadData是onclick函数,当我点击该按钮时,它从Web表单中获取数据。我的Web表单有一个type =“file”的输入字段,我希望当我点击那个按钮时可以调用uploadData函数,而不是它应该采取所有必要的数据.blob就是其中之一。 –

+0

我想uploadData()调用blob数据,而不是dataURL。 –

回答

0

​​.readAsDataURL()方法异步返回结果。您可以通过dataURLuploadData()致电load事件FileReader。还要注意,reader.resultdataURL.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]); 

} 
相关问题