js操作文件

  • 使用URL.createObjectURL(file | blob)得到一個當前文件的一個內存URL;需要使用URL.revokeObjectURL(url)釋放內存。

  • 使用new FileReader()創建文件讀取對象,可以調用reader.readAsArrayBuffer、reader.readAsDataURL、reader.readAsText等方法。使用reader.readAsDataURL(file);注意:該方法創建是異步的,需要使用reader.onload方法使用可以得到轉換后的blob://路徑

使用URL.createObjectURL(blob)得到圖片地址

    function fileChangeCreateObjectURL() {
        const oFile = document.getElementById('file')
        oFile.addEventListener('change', () => {
            var objUrl = oFile.files[0];
            console.log(objUrl, 'objUrl')
            const blob = new Blob([objUrl]); // 文件轉化成二進制文件
            console.log(blob, 'blob')
            var windowURL = window.URL || window.webkitURL;
            //createObjectURL創建一個指向該參數對象(圖片)的URL
            var dataURL = windowURL.createObjectURL(blob);
            console.log(dataURL, 'dataURLdataURL')
            document.getElementsByClassName('test')[0].src = dataURL
        })
    }

使用fileReader得到圖片地址

    function fileChangeFileReader() {
        const oFile = document.getElementById('file')
        oFile.addEventListener('change', () => {
            var objUrl = oFile.files[0];
            var reader = new FileReader(); //新建一個FileReader
            reader.readAsDataURL(objUrl); //讀取文件,保存為base64 格式
            reader.onload = function (evt) { //讀取完文件之后會回來這里
                var imageString = evt.target.result;
                console.log(imageString,'imageString')
                //獲得一個http格式的url路徑:mozilla(firefox)||webkit or chrome
                // var windowURL = window.URL || window.webkitURL;
                //createObjectURL創建一個指向該參數對象(圖片)的URL
                // var dataURL = windowURL.createObjectURL(objUrl);
                // $("#showImage").attr("src", dataURL);
                // console.log(dataURL, 'dataURL')
                document.getElementsByClassName('test')[0].src = imageString
            }
        })
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容