這篇文章主要介紹了JS+HTML5實(shí)現(xiàn)上傳圖片預(yù)覽效果,結(jié)合完整實(shí)例形式分析了javascript上傳圖片本地預(yù)覽的具體操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
本文實(shí)例講述了JS+HTML5實(shí)現(xiàn)上傳圖片預(yù)覽效果。分享給大家供大家參考,具體如下:
在項(xiàng)目中遇到用input標(biāo)簽file類型的文件上傳,想實(shí)在上傳之前進(jìn)行圖片的預(yù)覽功能;之前的做的一個(gè)解決方案是文件先上傳上去然后返回地址再顯示在頁(yè)面上,這樣就不太好,因?yàn)橛脩艋拘畔⒖赡懿](méi)有保存,但是頭像卻已經(jīng)改變,如果在需要改變就導(dǎo)致了多余圖片的保存服務(wù)器。
在網(wǎng)上找了下解決方案,如下所示:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>html5 圖片上傳預(yù)覽</title> <style> #preview { width: 300px; height: 300px; overflow: hidden; } #preview img { width: 100%; height: 100%; } </style> <script src="jquery-1.7.2.min.js"></script> <script type="text/javascript"> function preview1(file) { var img = new Image(), url = img.src = URL.createObjectURL(file) var $img = $(img) img.onload = function() { URL.revokeObjectURL(url) $('#preview').empty().append($img) } } function preview2(file) { var reader = new FileReader() reader.onload = function(e) { var $img = $('<img>').attr("src", e.target.result) $('#preview').empty().append($img) } reader.readAsDataURL(file) } $(function() { $('[type=file]').change(function(e) { var file = e.target.files[0] preview1(file) }) }) </script> </head> <body> <form enctype="multipart/form-data" action="" method="post"> <input type="file" name="imageUpload"/> <p id="preview" style="width: 300px;height:300px;border:1px solid gray;"></p> </form> </body> </html>