JS實現圖片上傳多次上傳同一張不生效的處理方法
阿新 • • 發佈:2018-12-05
平時都是用input直接上傳圖片,應該都用的是change事件,但是如果選擇了一張圖片,然後第二次再次選擇,就會出現不生效的bug,這裡給大家說一下解決辦法,希望對大家有幫助。
html程式碼:
<b>上傳附件:</b> <div class="file"> <img src="/Public/Admin/img/add-button.jpg" class="add_file" onclick="upload()"> <input type="file" id="upload_file" style="display:none;" multiple> </div>
js程式碼:
function upload(){ $("#upload_file").click(); } $("body").on("change",'#upload_file',function(){ var inputFile = document.getElementById('upload_file'); var file_length=inputFile.files.length; for(var i=0;i<file_length;i++){ var oFReader = new FileReader(); oFReader.readAsDataURL(inputFile.files[i]); oFReader.onloadend = function(oFRevent){ var src = oFRevent.target.result; $("#upload_file").attr('type','text'); $("#upload_file").after('<i class="imagelast" style="width:120px;height:100px;text-align:center;display:inline-block;margin-top:10px;"><img src="'+src+'" name="upload_files" class="upload_files style="width:100px;"/><div class="imageX1"></div></i>'); $(".imageX1").css({"width":'27px','height':'28px','margin-top':'-107px','margin-left':'89px','background-image':'url('+'/Public/Admin/img/cancel.png)','position':'absolute'}); $("#upload_file").attr('type','file'); } } })
如上,主要的程式碼就是把type=‘file’的這個file變成text,然後圖片顯示之後再變成file型別,這樣就解決了change的弊端