當前位置:首頁 » 文件管理 » js多張圖片上傳

js多張圖片上傳

發布時間: 2022-12-11 07:39:36

Ⅰ JS:上傳圖片

FileReader的使用方式非常簡單,可以按照如下步驟創建FileReader對象並調用其方法:

FileReader 的實例擁有 4 個方法,其中 3 個用以讀取文件,另一個用來中斷讀取。下面的表格列出了這些方法以及他們的參數和功能,需要注意的是 ,無論讀取成功或失敗,方法並不會返回讀取結果,這一結果存儲在 result屬性中。

1.readAsBinaryString:該方法將文件讀取為二進制字元串,通常我們將它傳送到後端,後端可以通過這段字元串存儲文件。
2.readAsDataURL:這是例子程序中用到的方法,該方法將文件讀取為一段以 data: 開頭的字元串,這段字元串的實質就是 Data URL,Data URL是一種將小文件直接嵌入文檔的方案。這里的小文件通常是指圖像與 html 等格式的文件。
3.readAsText:該方法有兩個參數,其中第二個參數是文本的編碼方式,默認值為 UTF-8。這個方法非常容易理解,將文件以文本方式讀取,讀取的結果即是這個文本文件中的內容。

FileReader 包含了一套完整的事件模型,用於捕獲讀取文件時的狀態,下面這個表格歸納了這些事件。

文件一旦開始讀取,無論成功或失敗,實例的 result 屬性都會被填充。如果讀取失敗,則 result 的值為 null ,否則即是讀取的結果,絕大多數的程序都會在成功讀取文件的時候,抓取這個值。

上傳並展示圖片小例子:

參考文件: https://blog.csdn.net/xianweizuo/article/details/88911364

Ⅱ element-ui 表單新建 編輯 多張圖片上傳與刪除

新建頁面 和編輯頁面 為同一個html

html裡面多張圖片上傳 刪除 

(主要是通過uid 來對圖片數組fileList5進行更新 刪除)

(fileList5裡面圖片對象的url 都換成oss返回的圖片url 替換掉之前的blob 統一起來更好處理 submit的時候可以直接取fileList5的數據)

(扔掉elemen-ui上傳圖片自帶的fileList5裡面的url 換成可以對接介面的url)

html:

<el-form-item label="認證文件" class='not-require'>

    <el-upload  action="" :before-upload='beforeUpload' :http-request="handleSuccessList5" :on-change="handleChange5" :file-list="fileList5" :on-remove='remove5' list-type="picture" multiple :limit='3'>

  <el-button size="small" type="primary">點擊上傳</el-button>

  <div slot="tip" class="el-upload__tip">每張圖片大小不超過1M</div>

</el-upload>

</el-form-item>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

multiple 表示多選

:limit='3' 限制傳3張

js:

//圖片改變時 將圖片數據push到fileList5中

handleChange5(file, fileList) {

    this.fileList5.push(file)

},

此時fileList5

圖片上傳成功 

handleSuccessList5(file) {

 var file;

 if (files.raw) { file = files.raw }else{file = files.file;}

//圖片上傳到oss

this.axios.get('/api/admin/vendor/uploadToken?path=images/').then(res =>{   

var form = new FormData

form.append('name', file.name)

form.append('key', res.dir + '${filename}')

form.append('policy', res.policy)

form.append('OSSAccessKeyId', res.accessid)

form.append('success_action_status', '200')

form.append('signature', res.signature)

form.append('file', file, file.name)

this.axios({

method: 'post',

url: res.host,

data: form,

}).then(respond=>{

var url_img = 'https:' + res.host + '/' + res.dir + file.name

//handleChange5時已經將圖片信息傳入到fileList5中了 有當前圖片的uid和url 但是url是blob形式的

//因為是多張圖片 所以fileList5數組有多個值 循環通過uid 替換掉當前圖片的url 將blob換成oss形式的圖片

for (var i = 0; i < this.fileList5.length; i++) {

    if (this.fileList5[i].uid == file.uid) {

    this.fileList5[i].url = url_img

    }

}

})

})

},

//刪除圖片 點擊叉叉刪除

remove5(file,fileList){

//同樣是通過uid 找到對應的圖片對象 刪除數組中的這個圖片對象

//參數file裡面有uid,fileList5數組裡面圖片對象也有uid 尋找相同的uid

for (var i = 0; i < this.fileList5.length; i++) {

    if(this.fileList5[i].uid == file.uid){

    this.fileList5.splice(i,1)

    }

}

//提交時候

this.replays.cert_file = this.fileList5

var form = new FormData

for (var i = 0; i < this.replays.cert_file.length; i++) {

form.append('cert_file[]',this.replays.cert_file[i].url)

}

//初始化時 如果是編輯頁面

//將編輯帶過來的form裡面圖片信息賦值給fileList5

for (var i = 0; i < this.form.cert_file.length; i++) {

this.fileList5.push({name:'',url:this.form.cert_file[i]})

}

Ⅲ 如何在電腦網頁上上傳圖片(多張的)

第一,Flash插件被禁用
1. 進入IE瀏覽器,打開右上角齒輪工具,選擇管理載入項。
2. 觀察Shockwave flashObject的載入項是否被禁用,如果禁用請啟動該載入項。
第二,Flash插件與IE瀏覽器的關聯被破壞
如果以上方法不行的話,那就是Flash插件與IE瀏覽器的關聯遭到了破壞,比如病毒,需要重新注冊Flash插件與IE瀏覽器的關聯,方法如下:
1 使用管理員賬戶運行CMD,在輸入框中輸入「regsvr32 jscripq.dll」回車(不包括雙引號),點擊確定
2 在輸入框中輸入「regsvr32 vbscripq.dll」回車(不包括雙引號),點擊確定;
3 64位系統輸入「cd C:\Windows\Syswow64\Macromed\Flash」回車(不包括雙引號),32位系統輸入「cd C:\Windows\System32\Macromed\Flash」回車(不包括雙引號)
4 輸入「regsvr32 Flash.ocx」回車(不包括雙引號) 即可完成。

Ⅳ 如何在前端用js進行多圖片上傳

    產品提了一個需求,要求在一個html中實現多行多圖片上傳,原型圖如下:

    2.1 :html

        html頁面由前端實現,此處增加<ul><li></li></ul>是為了配合圖片單擊放大圖片功能的實現

        <ul  id="ul_other">

              <li><input type="file" id="file_other" class="file_input" onchange="add_file_image('other')"></li>

        </ul>

    2.2 :js

        var imgSrc_other=[];

        var imgFile_other=[];

        function add_file_image(id) {

            var fileList =document.getElementById("file_"+id).files;// js 獲取文件對象

            if (verificationFile(fileList[0])){

                for(var i =0;i

                    var imgSrcI =getObjectURL(fileList[i]);

                        if (id=="other"){

                            imgSrc_other.push(imgSrcI);

                            if(fileList[i].size/1024 >100) { //大於100kb,進行壓縮上傳

                                 fileResizetoFile(fileList[i],0.6,function(res){

                                  imgFile_other.push(res);

                                })

                            }else{

                                imgFile_other.push(res);

                        }

                    }

                    addNewContent(id);

                }

        }

    //新增圖片

    function addNewContent(obj) {

        //刪除原先

        $("#ul_"+obj).html("");

        //判斷循環新增

        var  text="";

        if (obj=="other"){

           for(var a =0;a < imgSrc_examReportCard.length;a++) {

            text +='<li><input type="file" id="file_other" class="file_input" onchange="add_file_image('other')"></li>';

           }

        }else{

            console.log('臟數據');

        }

        var oldBox ="<li><div class=\"filediv\"><span>+</span>\n" +

        "<input type=\"file\" id=\"file_"+obj+"\"  class=\"file_input\" onchange=\"add_file_image('"+obj+"')\">\n" +

        "</div></li>";

        $("#ul_"+obj).html( text+localText);

    }

    使用formData上傳

    var form =document.getElementById("form_addArchive");//表單id

    var formData =new FormData(form);

    $.each(imgFile_other,function(i, file){

        formData.append('imgFileOther', file);

    });

$.ajax({

    url:url,

    type:'POST',

    async:true,

    cache:false,

    contentType:false,

    processData:false,

    dataType:'json',

    data:formData,

    xhrFields:{

        withCredentials:true

    },

    success:function(data) {

     }

  },

  error:function(XMLHttpRequest, textStatus, errorThrown) {

    }

})

後台使用@RequestParam(value ="imgFileOther", required=false) List<MultipartFile> imgFileOther, 接受

//獲取圖片url以便顯示       

//文件格式驗證

//圖片壓縮

Ⅳ js 前端上傳多張圖片

  1. 可以用webuploader插件,上傳成功後,服務端返回圖片地址,客戶端<img>顯示圖片

  2. X關閉按鈕這個得自己用css樣式控制,點擊X後,服務端刪除圖片,然後前端移除該X掉的圖片

Ⅵ jsp如何實現多圖片一起上傳



導包 com.jspsmart.upload.SmartUpload

mySmartUpload.initialize(pageContext);
mySmartUpload.upload();
for(int i=0;i<mySmartUpload.getFiles().getCount();i++){
com.jspsmart.upload.File myFile=mySmartUpload.getFiles().getFiles().getFile(i);
if(!myFile.isMissing()){
myFile.saveAs("c:\\"+myFile.getFileName(),mySmartUpload.SAVE_PHYSICAL);
}
}

基本上就是這意思了! 全是手寫的,不知道有沒有少寫什麼字母
然後頁面取的FILE 再不會,去查,查了也不會再說

Ⅶ 我需要一個js或者jquery能批量上傳圖片+預覽的功能。急~~~急~~~急~~

WebUploader項目,符合你的要求。

//文件上傳過程中創建進度條實時顯示。
uploader.on('uploadProgress',function(file,percentage){
var$li=$('#'+file.id),
$percent=$li.find('.progressspan');

//避免重復創建
if(!$percent.length){
$percent=$('<pclass="progress"><span></span></p>')
.appendTo($li)
.find('span');
}

$percent.css('width',percentage*100+'%');
});
//文件上傳成功,給item添加成功class,用樣式標記上傳成功。
uploader.on('uploadSuccess',function(file){
$('#'+file.id).addClass('upload-state-done');
});

//文件上傳失敗,顯示上傳出錯。
uploader.on('uploadError',function(file){
var$li=$('#'+file.id),
$error=$li.find('div.error');

//避免重復創建
if(!$error.length){
$error=$('<divclass="error"></div>').appendTo($li);
}

$error.text('上傳失敗');
});

//完成上傳完了,成功或者失敗,先刪除進度條。
uploader.on('uploadComplete',function(file){
$('#'+file.id).find('.progress').remove();
});

更多細節,請查看js源碼

Ⅷ 3分鍾上手JS中的FileReader對象(實現上傳圖片預覽)

詳見原文:
https://www.cnblogs.com/LO-gin/p/6817319.html

方法一:使用js的FileReader對象
1、FileReader對象簡介
檢測瀏覽器對FileReader的支持

調用FileReader對象的方法

FileReader 的實例擁有 4 個方法,其中 3 個用以讀取文件,另一個用來中斷讀取。下面的表格列出了這些方法以及他們的參數和功能,

需要注意的是 ,無論讀取成功或失敗,方法並不會返回讀取結果,這一結果存儲在 result屬性中。

readAsText:該方法有兩個參數,其中第二個參數是文本的編碼方式,默認值為 UTF-8。這個方法非常容易理解,將文件以文本方式讀取,讀取的結果即是這個文本文件中的內容。
readAsBinaryString:該方法將文件讀取為二進制字元串,通常我們將它傳送到後端,後端可以通過這段字元串存儲文件。
readAsDataURL:這是例子程序中用到的方法,該方法將文件讀取為一段以 data: 開頭的字元串,這段字元串的實質就是 Data URL,Data URL是一種將小文件直接嵌入文檔的方案。這里的小文件通常是指圖像與 html 等格式的文件。(其中base64的方式就是由此來獲得的。。)

文件一旦開始讀取,無論成功或失敗,實例的 result 屬性都會被填充。如果讀取失敗,則 result 的值為 null ,否則即是讀取的結果,絕大多數的程序都會在成功讀取文件的時候,抓取這個值。

例子:

3 、使用js的FileReader對象實現上傳圖片時的圖片預覽功能

方法二:使用window.createObjectURL

Ⅸ js:點擊按鈕上傳圖片,最多能上傳3張,上傳第4張給出提示,js怎麼寫

你的上傳按鈕是怎麼操作的?是表單的submit還是單獨的按鈕onclick事件調用方法?

Ⅹ 求js多張圖片上傳,可預覽右上角帶刪除圖標的代碼

可以用dropzone.js試試,官網: http://www.dropzonejs.com/,你看看就知道了。上面有一個demo,你試試

熱點內容
數獨基本演算法 發布:2025-09-19 13:14:29 瀏覽:528
python獲取ip代理伺服器 發布:2025-09-19 12:55:35 瀏覽:230
h5加密 發布:2025-09-19 12:13:11 瀏覽:782
網貸系統源碼下載 發布:2025-09-19 10:56:45 瀏覽:114
腳本被黑 發布:2025-09-19 10:51:27 瀏覽:507
android自定義命名空間 發布:2025-09-19 10:31:34 瀏覽:461
凱立德導航文件夾名稱 發布:2025-09-19 10:31:27 瀏覽:34
獅山編程 發布:2025-09-19 10:14:45 瀏覽:786
androidshape畫圓 發布:2025-09-19 10:13:21 瀏覽:837
c語言if復合語句 發布:2025-09-19 10:12:30 瀏覽:718