我只是想將我的 HTML 檔案輸入作為二進制檔案輸入以將其保存在我的 SQL SERVER 中。下面的代碼顯然解決了我的問題,但我無法獲取“ reader.readAsBinaryString(input.files[0])”并存盤在變數中。它只是console.log對 input.files[0],但我需要將它存盤。另外,我不習慣FileReader(),所以歡迎任何有關如何使用它的提示。
這個函式是使用正在上傳的實際檔案,還是獲取它的路徑?
代碼很簡單:
<input type="file" id="myFile" name="myFile">
JS:
$("#myFile").change(function (event) {
var input = event.target;
var reader = new FileReader();
reader.onload = function () {
console.log(reader.result);
};
fileToSave = reader.readAsBinaryString(input.files[0]);
});
uj5u.com熱心網友回復:
readAsBinaryString不回傳任何東西。它所做的是告訴FileReader開始讀取檔案。 當該程序完成時,您可以result在FileReader物件的屬性中看到您正在讀取的資料。
您觀察到的內容在onload事件中可用:
reader.onload = function(){
console.log(reader.result);
};
由于該事件是資料可用的時間,因此該事件是您可以讀取該資料的地方。例如:
reader.onload = function(){
fileToSave = reader.result;
console.log(fileToSave);
};
當然,那么接下來的問題......當/你在哪里嘗試使用的價值fileToSave。請記住,這是一個異步操作。如果您嘗試立即使用資料,fileToSave那么當然它不會包含稍后在此onload事件中可用的資料。
無論操作需要使用該資料,該操作都必須在此事件之后發生。例如:
reader.onload = function(){
fileToSave = reader.result;
console.log(fileToSave);
someOtherOperation();
};
或者甚至:
reader.onload = function(){
const fileToSave = reader.result;
console.log(fileToSave);
someOtherOperation(fileToSave);
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/364142.html
標籤:javascript 查询
上一篇:使用`scrollY`時無法對齊DataTables標題行
下一篇:Jquery,查找包含值的子陣列
