亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > WEB開發 > 正文

H5圖片預覽及上傳(WEB前端)

2024-04-27 15:07:33
字體:
來源:轉載
供稿:網友

H5圖片預覽及上傳

web上傳圖片很簡單,網上有許多的demo和js,但是本人嫌棄用那些會引入許多js包,所以還是用原生的jquery來寫吧。

一、html布局文件

html有一個自己的上傳文件控件---input,只需要將其type屬性設置為file即可上傳文件,accept=“image/”是用來限制文件類型為image,input代碼如下:
 <input class="input-upload" type="file" accept="image/*"  name="pic" >之后,我們還需要一個image標簽來存放圖片的預覽:
<img v-bind:src="demand.image" /> //v-bind是vue.js的用法,將src的屬性綁定為demand.image,可支持動態改變src的值,減少dom操作完整的html代碼:
<div id="ImageUploader" data-vpid="<%-VPID%>" data-vpcon="`{MODURL}`.js"><div class="filearea">        <span class="btn-upload icon-enclosure">            <input class="input-upload" type="file" accept="image/*"  name="pic" >        </span>    <div class="PReview" >        <i class="hide"></i>        <img v-bind:src="demand.image" />        <div class="remove icon-delete"></div>    </div></div></div>

二、CSS樣式

對應的css樣式:
@import "src/node_modules/views/global/sass/mixin";#ImageUploader {    position: relative;    .btn-upload {        position: relative;        overflow: hidden;        width: 1.57rem;        height: 1.05rem;        border: solid 1px $blue;        display: table-cell;         vertical-align: middle;        text-align: center;        color: $blue;        z-index: 20;        margin-top: 10px;        margin-left: 15px;    }    .input-upload {        position: absolute;        top: 0;        right: 0;        margin: 0;        opacity: 0;        -ms-filter: 'alpha(opacity=0)';        cursor: pointer;		direction: ltr;		font-size: 200px !important;  /* 為了能點中,弄個超大字號 */    }	.preview {        position: absolute;	}    img {        max-width: 1.57rem;        max-height: 1.05rem;        }	.remove {        position: absolute;        top: -8px;        right: -8px;        z-index: 10;        width: 0.16rem;        height: 0.16rem;        border-radius: 50%;        color: white;        background: $blue;         font-size: 0.11rem;        text-align: center;        padding-top: 2px;	}}

三、TS代碼

本人的用的是TS寫的,編輯器可以自動將TS轉化為JS,圖片的預覽有兩種方法,一是根據input獲取html5 JS對象;而是根據file對象生成一個圖像URL,即下面代碼中的function1和function2
import * as tomato from "@po-to/tomato";import * as project from "views/global/common/Project";import * as funs from "views/global/common/Funs";import * as model from "views/global/common/Model";import * as Vue from "vue";import css = require("./css");    //在js中引入css樣式import * as api from "views/global/common/API";class VPresenter extends project.VPresenter {    /**模塊 */    private ImageUploader_vue: any;    /**預覽圖片 */    private img;    private preview;    /**input控件 */    private inputUpload;    private btnUpload: JQuery;    /**demand */    private demand;    // private form;    constructor(view: tomato.VPView, parent?: tomato.VPresenter, vpid?: string) {        super(view, parent, vpid);        var aaa = css;//hack        var user = model.globalData.user;        var demand = this.demand = model.globalData.demand;        var that = this;        //取到html中的元素       this.preview = this.find(".preview");        this.btnUpload = this.find(".btn-upload ");        this.inputUpload = this.find(".input-upload");        /**刪除預覽 */        this.preview.on('click', function () {            that.demand.image = '';            that.setImg();        });        /**預覽上傳圖片 */        this.inputUpload.on('change', function (event) {            // 根據這個 <input> 獲取文件的 HTML5 js 對象            var files = event.target.files, file;            if (files && files.length > 0) {                // 獲取目前上傳的文件                file = files[0];                // 來在控制臺看看到底這個對象是什么                console.log(file);                // 那么我們可以做一下諸如文件大小校驗的動作                if (file.size > 1024 * 1024 * 2) {                    alert('圖片大小不能超過 2MB!');                    return false;                }                // 圖片預覽 function 1                if (window['FileReader']) {                    var reader = new FileReader();                } else {                    alert("您的設備不支持圖片預覽功能,如需該功能請升級您的設備!");                }                var reader = new FileReader();                var imageType = /^image///;                //是否是圖片                if (!imageType.test(file.type)) {                    alert("請選擇圖片!");                    return;                }                //讀取完成                reader.onload = function (e) {                    //圖片路徑設置為讀取的圖片                    that.demand.image = this.result;                };                reader.readAsDataURL(file);                // 圖片預覽 function 2                // 下面是關鍵的關鍵,通過這個 file 對象生成一個可用的圖像 URL                // 獲取 window 的 URL 工具                // var URL = window.URL || window['webkitURL'];                // 通過 file 生成目標 url                // var imgURL = URL.createObjectURL(file);                // 用這個 URL 產生一個 <img> 將其顯示出來                // demand.image = imgURL;                // 使用下面這句可以在內存中釋放對此 url 的伺服,跑了之后那個 URL 就無效了                // URL.revokeObjectURL(imgURL);               that.fileUpload(file);//預覽出現后調用上傳方法,傳值為一個file對象,也可以傳demand.image預覽地址,看服務器那邊怎么要求的            }        });        this.setImg();        //this._watchEvent();    }    /** 初始化*/    private setImg() {        /**是否有圖片 */        if ("" == this.demand.image) {            this.preview.addClass("hide");            this.btnUpload.removeClass("hide");        } else {            this.btnUpload.addClass("hide");            this.preview.removeClass("hide");        }    }    /**上傳文件,參數:訂單id和文件對象 */    private fileUpload(file) {        var that=this;        var demand_id = this.demand.id;        var formData = new FormData();        formData.append('demand_id', demand_id);        formData.append('file', file);        $.Ajax({            xhrFields: {withCredentials: true},//ajx請求時帶上cookie            url: 'http://dev.v2.api.wanpinghui.com/Img/uploadDemandPlaceImage',            type: 'POST',            cache: false,            data: formData,            processData: false,            contentType: false        }).done(function (json) {            console.log("::"+json.image);            model.globalData.demand.image = json.image;        }).fail(function (json) { });    }}export = VPresenter;
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品国产综合久久| 91国偷自产一区二区三区的观看方式| 国产国语videosex另类| 欧美日韩在线观看视频| 午夜精品久久久久久久久久久久久| 欧洲日韩成人av| 久久成人18免费网站| 久久久精品一区二区三区| 一区二区三区 在线观看视| 国产香蕉一区二区三区在线视频| 国产精品一区二区三区久久| 久久久91精品国产一区不卡| 国产精品爽黄69天堂a| 久久偷看各类女兵18女厕嘘嘘| 欧美做爰性生交视频| 久久中国妇女中文字幕| 亚洲性视频网址| 精品一区二区三区三区| 91日本视频在线| 欧美精品福利视频| 国产福利精品在线| 亚洲精品日韩欧美| 欧美孕妇与黑人孕交| 日韩精品高清在线观看| 国产欧美久久一区二区| 欧美在线一区二区三区四| 91极品女神在线| 欧美第一淫aaasss性| 欧美老少配视频| 欧美大片在线免费观看| 久久久久久久激情视频| 久久久久国产精品一区| 欧美日韩人人澡狠狠躁视频| 欧美精品第一页在线播放| 久久精品国产亚洲7777| 人人爽久久涩噜噜噜网站| 91av在线网站| 久久久久亚洲精品国产| 日韩在线观看免费全集电视剧网站| 国产精品白嫩初高中害羞小美女| 国产亚洲精品日韩| 日韩中文字幕国产精品| 国产日韩中文字幕在线| 精品久久久一区| 欧美另类精品xxxx孕妇| 亚洲有声小说3d| 日韩精品免费在线视频观看| 国产精品国产三级国产aⅴ浪潮| 国内精品视频在线| 精品福利免费观看| 亚洲一区999| 北条麻妃99精品青青久久| 欧美性xxxx在线播放| 久久激情五月丁香伊人| 久久精品国产69国产精品亚洲| 欧美在线一级va免费观看| 成人天堂噜噜噜| 欧美日韩国产在线看| 亚洲欧美一区二区三区四区| 国产精品福利网站| 92国产精品久久久久首页| 成人黄色免费片| 久久久久久久久久久成人| 日韩美女写真福利在线观看| 91精品免费视频| 91久久久久久国产精品| 国产极品精品在线观看| 精品视频在线导航| 国产免费一区二区三区在线能观看| 中文字幕av一区二区三区谷原希美| 一本大道久久加勒比香蕉| 欧美日韩国产色视频| 亚洲一区中文字幕在线观看| 欧美交受高潮1| 欧美在线视频播放| 国产精品久久久久久久久久久不卡| 中文在线不卡视频| 欧美日韩精品在线视频| 亚洲精品有码在线| 亚洲精品久久久一区二区三区| 热久久视久久精品18亚洲精品| 欧美激情啊啊啊| 欧美自拍视频在线| 欧美亚洲成人精品| 欧美成人手机在线| 国产精品久久久久久久久久东京| 中文欧美日本在线资源| 国产欧美亚洲精品| 最近2019中文字幕第三页视频| 91av在线视频观看| 亚洲成人动漫在线播放| 性亚洲最疯狂xxxx高清| 亚洲一区二区福利| 国产精品88a∨| 国产suv精品一区二区三区88区| 亚洲日本中文字幕| 国产精品自产拍高潮在线观看| 亚洲成色777777在线观看影院| 日韩美女毛茸茸| 亚洲欧洲日产国产网站| 伊人伊成久久人综合网小说| 亚洲女同性videos| 国产精品一区二区久久久久| 国产97在线|日韩| 欧美激情区在线播放| 久久久久久国产三级电影| 亚洲国产成人爱av在线播放| 国产91免费看片| 91视频国产一区| 欧美精品一区二区免费| 亚洲欧美日韩精品| 日韩亚洲第一页| 北条麻妃一区二区三区中文字幕| 亚洲欧美日韩国产中文| 国产香蕉一区二区三区在线视频| 亚洲精品自产拍| 亚洲精品色婷婷福利天堂| 久久精品国产亚洲精品2020| 欧美另类暴力丝袜| 伊人久久综合97精品| 成人免费网站在线观看| 国产va免费精品高清在线| 色阁综合伊人av| 日韩不卡中文字幕| 国产亚洲精品一区二区| 国产精品老牛影院在线观看| 亚洲色图综合久久| 欧美专区日韩视频| 欧美成人免费全部观看天天性色| 精品美女久久久久久免费| 亚洲一区av在线播放| 欧美激情二区三区| 久久成人这里只有精品| 亚洲999一在线观看www| 国产精品视频大全| 中文在线资源观看视频网站免费不卡| 欧美精品生活片| 国产精品久久久一区| 欧美超级乱淫片喷水| 欧洲亚洲在线视频| 国产视频精品一区二区三区| 国产精品久久网| 久久精品亚洲国产| 美日韩精品免费观看视频| 亚洲一级一级97网| 国产精国产精品| 国产精品久久久久91| 色与欲影视天天看综合网| 色噜噜亚洲精品中文字幕| 欧美大成色www永久网站婷| 欧美激情国产高清| 成人h视频在线| 久久综合网hezyo| 久久在线视频在线| 精品亚洲aⅴ在线观看| 国产精品爽黄69天堂a| 欧美性一区二区三区| 日韩成人在线网站| 国产亚洲一区二区在线| 亚洲一级一级97网| 视频直播国产精品| 久久成人国产精品| 欧美性极品xxxx做受| 国产精品久久久久久久久粉嫩av|