js上传图片功能

本文将详细介绍如何使用JavaScript在前端实现图片上传功能,包括文件选择、预览、进度显示和上传到服务器的基本步骤,同时涉及CSS美化上传组件的技巧。
摘要由CSDN通过智能技术生成
/* 上传图片 */
.upload-pictures-warp {
  display: inline-block;
  vertical-align: bottom;
  position: relative;
}

.upload-pictures-warp-content {
  border: 1px solid #cccccc;
  width: 150px;
  height: 150px;
  line-height: 150px;
  text-align: center;
}

.upload-pictures-input {
  position: absolute;
  top: 0;
  left: 0;
  width: 150px;
  height: 150px;
  opacity: 0;
  cursor: pointer;
}

.upload-pictures-img {
  width: 300px;
  height: 300px;
  border: 1px solid skyblue;
  margin-top: 27px;
  vertical-align: bottom;
}
.add-check{
  margin-bottom: 0 !important;
  margin-left: 14px;
}
<div class="form-group">
   <label class="col-sm-2 control-label">图片</label>
   <div class="col-sm-10">
       <div id="upload-pictures-warp isShow">
           <div v-if="flag != 0" class="upload-pictures-warp-content">点击上传</div>
           <input type="file" @change='uploadPhoto' class="upload-pictures-input"
               name="file" />
           <img :src="detailForm.img" class="upload-pictures-img" />
           <div @click="check(detailForm.img)" class="btn btn-warning btn-sm add-check"><i
               class="glyphicon glyphicon-eye-open"></i>
           预览 </div>
       </div>
   </div>
</div>
// 图片格式
function isAssetTypeAnImage(ext) {
	return (
		[
			'png',
			'jpg',
			'jpeg',
			'bmp',
			'gif',
			'webp',
			'psd',
			'svg',
			'tiff',
		].indexOf(ext.toLowerCase()) !== -1
	)
}



  created() {
 // 只有添加的时候才不可以调详情接口
         if (flag == 0 || flag == 1) {
             this.getBannerDetails()
         }
         if (flag == 0) {
             //查看页面的时候 设置按钮不可用,背景为灰色
             $('.isShow').css('background', '#cccccc !important').prop("disabled", true);
         }
     },

	//上传图片
    uploadPhoto(e) {
        var that = this
        var photoFile = e.target.value
        //获取最后一个.的位置
        var index = photoFile.lastIndexOf(".");
        //获取后缀
        var ext = photoFile.substr(index + 1);
        if (isAssetTypeAnImage(ext) != true) {
            alert("图片格式不正确");
            return;
        }

        var files = new FormData()
        files.append('file', e.currentTarget.files[0])

        axios({
            method: "POST",
            url: 'https://api.dongjinyu.com/common/file/upload',
            data: files,
            headers: {
                // 'Content-Type': 'application/json'
            }
        }).then(function (res) {
            if (res.status === 200) {
                var ret = res.data;
                switch (ret.code) {
                    case 200:
                        that.detailForm.img = ret.data
                        break;
                    case 500:
                        if (typeof err === 'function') {
                            alert(ret)
                        } else {
                            alert(ret.msg)
                        }
                        break;
                    case 401:
                        break;
                }
            } else {
                console.error('network error', res);
            }
        })

    },
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值