2016-08-20 79 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]); 

} 
相關問題