日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jQuery图片上传前先在本地预览(不经过后端处理)

發布時間:2025/3/20 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jQuery图片上传前先在本地预览(不经过后端处理) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前段時間遇到一個問題,前端想實現圖片上傳預覽(不經過后端PHP或JAVA處理),用戶點擊file按鈕上傳文件,點擊確定馬上就能看到預覽的效果,但在實現的時候無論怎樣都取不到file上圖片的真實路徑,得到的反而是C:\fakepath\a.jpg,這個路徑是錯誤的。百度之后得到說瀏覽器基于保護用戶的相關安全措施,隱藏了上傳的真實路徑,用fakepath代替,當然,調整瀏覽器的相關安全設置可以解決這個問題。但我們不可能讓所有用戶都通過設置瀏覽器的安全設置來進行圖片上傳,這種方法在網絡交互上顯然不現實。

/* *名稱:圖片上傳本地預覽插件 v1.1 *介紹:基于JQUERY擴展,圖片上傳預覽插件 目前兼容瀏覽器(IE 谷歌 火狐) 不支持safari *插件網站:http://keleyi.com/keleyi/phtml/image/16.htm *參數說明: Img:圖片ID; Width:預覽寬度; Height:預覽高度; ImgType:支持文件類型; Callback:選擇文件顯示圖片后回調方法; *使用方法: <div> <img id="ImgPr" width="120" height="120" /></div> <input type="file" id="up" />

把需要進行預覽的IMG標簽外 套一個DIV 然后給上傳控件ID給予uploadPreview事件

$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120, ImgType: ["gif", "jpeg", "jpg", "bmp", "png"], Callback: function () { }});

實例:

jQuery.fn.extend({uploadPreview: function (opts) {var _self = this,_this = $(this);opts = jQuery.extend({Img: "ImgPr",Width: 100,Height: 100,ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],Callback: function () {}}, opts || {});_self.getObjectURL = function (file) {var url = null;if (window.createObjectURL != undefined) {url = window.createObjectURL(file)} else if (window.URL != undefined) {url = window.URL.createObjectURL(file)} else if (window.webkitURL != undefined) {url = window.webkitURL.createObjectURL(file)}return url};_this.change(function () {if (this.value) {if (!RegExp("\.(" + opts.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {alert("選擇文件錯誤,圖片類型必須是" + opts.ImgType.join(",") + "中的一種");this.value = "";return false} //高版本Jquey使用 if ($.support.leadingWhitespace)if ($.browser.msie) { //低版本jquery中使用的方式try {$("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))} catch (e) {var src = "";var obj = $("#" + opts.Img);var div = obj.parent("div")[0];_self.select();if (top != self) {window.parent.document.body.focus()} else {_self.blur()}src = document.selection.createRange().text;document.selection.empty();obj.hide();obj.parent("div").css({'filter': 'progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)','width': opts.Width + 'px','height': opts.Height + 'px'});div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src}} else {$("#" + opts.Img).attr('src', _self.getObjectURL(this.files[0]))}opts.Callback()}})} });

調用:

$(function () {$("#up").uploadPreview({ Img: "ImgPr", Width: 120, Height: 120 }); });

HTML結構:

<div> <img id="ImgPr" width="120" height="120" /> </div> <input type="file" id="up" />

?本人發布的插件測試地址:http://www.jq22.com/webqd875

轉載于:https://www.cnblogs.com/tongkaiqiang/p/6780822.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的jQuery图片上传前先在本地预览(不经过后端处理)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。