[英]How to get string base64 in a variable?
這是我的代碼:但沒有在我的變量中獲取字符串base64。 我在此變量var base64中需要字符串base64。 我看過其他問題,但沒有一個滿足我的需求
<input type:file multiple id="files">
<script>
function listarchivos(){
var base64; //in this variable i need the base64
var selectedFile = document.getElementById("files").files;
var fileToLoad = selectedFile[0];
getBase64(fileToLoad).then(
data => alert(data)
);
}
//This is my function for get base64, but not return the string base64
function getBase64(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = error => reject(error);
return Promise.resolve(reader.result)
});
}
</script>
我已經符合獲取作為參數給出的文件的base64字符串的函數,我不能做的就是訪問該字符串以將其分配給變量並使用它。
我只需要您告訴我如何訪問該base64鏈,我只需要一個可以根據需要處理的變量即可。
I have already tried the following options
var base64 = getBase64(fileToLoad).then(
data => alert(data)
); //this not works
getBase64(fileToLoad).then(
data => base64 = data
); //This not works
getBase64(fileToLoad).then(
data => return{data}
);//this not works
由於Promise
使該函數異步進行,因此以下代碼將開始運行getBase64()
並繼續執行未定義的console.log(base64)
。
function listarchivos() {
base64; //in this variable i need the base64
var selectedFile = document.getElementById("files").files;
var fileToLoad = selectedFile[0];
getBase64(fileToLoad).then(
data => {
base64 = data;
}
);
console.log(base64) // undefined
}
因此,您應該await
getBase64()
完成或使用如下所示的回調。
等待示例1
async function listarchivos() { var base64; //in this variable i need the base64 var selectedFile = document.getElementById("files").files; var fileToLoad = selectedFile[0]; await getBase64(fileToLoad).then( data => { alert(data); base64 = data; } ); console.log(base64) } //This is my function for get base64, but not return the string base64 function getBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = error => reject(error); return Promise.resolve(reader.result) }); } $('#files').on('change', listarchivos)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="file" multiple id="files">
等待示例2
async function listarchivos() { var base64; //in this variable i need the base64 var selectedFile = document.getElementById("files").files; var fileToLoad = selectedFile[0]; base64 = await getBase64(fileToLoad).then( data => { return data; } ); console.log(base64) } //This is my function for get base64, but not return the string base64 function getBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = error => reject(error); return Promise.resolve(reader.result) }); } $('#files').on('change', listarchivos) function DoSomething() { console.log(base64) }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="file" multiple id="files">
打回來
var base64; function listarchivos() { var selectedFile = document.getElementById("files").files; var fileToLoad = selectedFile[0]; getBase64(fileToLoad).then( data => { base64 = data; DoSomething() } ); } //This is my function for get base64, but not return the string base64 function getBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = error => reject(error); return Promise.resolve(reader.result) }); } $('#files').on('change', listarchivos) function DoSomething() { console.log(base64) }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input type="file" multiple id="files">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.