上傳圖片對圖片進行一下預覽,可以瞭解圖片上傳後大概會是什麼樣子,此功能用js實現,然後在fileupload控制元件的change事件中呼叫,這樣當用fileupload選擇完圖片以後,圖片就會自動顯示出來了。功能很簡單,卻很實用。
預覽圖片的js程式碼:
<script type="text/javascript"> function setImagePreview(docObj,localImagId,imgObjPreview) { if(docObj.files && docObj.files[0]) { //火狐下,直接設img屬性 imgObjPreview.style.display = 'block'; imgObjPreview.style.width = '300px'; imgObjPreview.style.height = '200px'; //火狐7以上版本不能用上面的getAsDataURL()方式獲取,需要一下方式 imgObjPreview.src = window.URL.createObjectURL(docObj.files[0]); } else { //IE下,使用濾鏡 docObj.select(); var imgSrc = document.selection.createRange().text; //必須設定初始大小 localImagId.style.width = "300px"; localImagId.style.height = "200px"; //圖片異常的捕捉,防止使用者修改字尾來偽造圖片 try { localImagId.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)"; localImagId.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgSrc; } catch(e) { alert("您上傳的圖片格式不正確,請重新選擇!"); return false; } imgObjPreview.style.display = 'none'; document.selection.empty(); } return true; } </script>
fileupload控制元件及用來預覽圖片的image:
<div id="localImag" style="width: 300px; height: 200px"> <img id="preview" alt="預覽圖片" src="http://www.cnblogs.com/Images/noImage.gif" width="300px" height="200px" /> </div> <asp:FileUpload ID="PicLoad" Width="300px" runat="server" onchange="javascript:setImagePreview(this,localImag,preview);"> </asp:FileUpload>
功能很簡單,程式碼也很易懂,相信不用我多廢話大家也能看懂吧。感覺寫這樣的文章,真的沒啥好說的,不多說,還是把重點放在程式碼上吧。