Convert URL to File or Blob for FileReader.readAsDataURL

后端 未结 8 867
情话喂你
情话喂你 2020-11-27 13:57

Reference: FileReader.readAsDataURL

Considering the following example:

function previewFile(file) {

  var reader  = new FileReader();

  reader.onlo         


        
8条回答
  •  醉梦人生
    2020-11-27 14:51

    Here is my code using async awaits and promises

    const getBlobFromUrl = (myImageUrl) => {
        return new Promise((resolve, reject) => {
            let request = new XMLHttpRequest();
            request.open('GET', myImageUrl, true);
            request.responseType = 'blob';
            request.onload = () => {
                resolve(request.response);
            };
            request.onerror = reject;
            request.send();
        })
    }
    
    const getDataFromBlob = (myBlob) => {
        return new Promise((resolve, reject) => {
            let reader = new FileReader();
            reader.onload = () => {
                resolve(reader.result);
            };
            reader.onerror = reject;
            reader.readAsDataURL(myBlob);
        })
    }
    
    const convertUrlToImageData = async (myImageUrl) => {
        try {
            let myBlob = await getBlobFromUrl(myImageUrl);
            console.log(myBlob)
            let myImageData = await getDataFromBlob(myBlob);
            console.log(myImageData)
            return myImageData;
        } catch (err) {
            console.log(err);
            return null;
        }
    }
    
    export default convertUrlToImageData;
    

提交回复
热议问题