欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Vue+ElementUI圖片上傳控件使用詳解

上一篇 Vue +Element UI +vue-quill-editor 富文本編輯器及插入圖片自定義 主要是寫了富文本編輯器的自定義及編輯器中圖片的上傳并插入到編輯內(nèi)容,這篇文章單獨(dú)介紹一下element UI 圖片上傳控件的使用。首先要安裝element并中引入,安裝引入過程這里不再贅述。

成都創(chuàng)新互聯(lián)成立于2013年,我們提供高端網(wǎng)站建設(shè)、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、網(wǎng)站定制、成都營銷網(wǎng)站建設(shè)、小程序開發(fā)、微信公眾號開發(fā)、成都網(wǎng)站推廣服務(wù),提供專業(yè)營銷思路、內(nèi)容策劃、視覺設(shè)計、程序開發(fā)來完成項目落地,為三輪攪拌車企業(yè)提供源源不斷的流量和訂單咨詢。

1.引用element 上傳控件。

<el-upload
 action="/mgr/common/imgUpload"http://這里需要配置一下文件上傳地址(跨域)
 list-type="picture-card"
 accept="image/*"
 :limit="imgLimit"
 :file-list="productImgs"
 :multiple="isMultiple"
 :on-preview="handlePictureCardPreview"
 :on-remove="handleRemove"
 :on-success="handleAvatarSuccess"
 :before-upload="beforeAvatarUpload"
 :on-exceed="handleExceed"
 :on-error="imgUploadError">
 <i class="el-icon-plus"></i>
 </el-upload>
 <el-dialog :visible.sync="dialogVisible">
 <img width="100%" :src="dialogImageUrl" alt="">
 </el-dialog>

2.js

export default {
 data() {
 return {
 dialogImageUrl: '',
 dialogVisible: false,
 productImgs: [],
 isMultiple: true,
 imgLimit: 6
 }
 },
 methods: {
 handleRemove(file, fileList) {//移除圖片
 console.log(file, fileList);
 },
 handlePictureCardPreview(file) {//預(yù)覽圖片時調(diào)用
 console.log(file);
 this.dialogImageUrl = file.url;
 this.dialogVisible = true;
 },
 
 beforeAvatarUpload(file) {//文件上傳之前調(diào)用做一些攔截限制
 console.log(file);
 const isJPG = true;
 // const isJPG = file.type === 'image/jpeg';
 const isLt2M = file.size / 1024 / 1024 < 2;
 
 // if (!isJPG) {
 // this.$message.error('上傳頭像圖片只能是 JPG 格式!');
 // }
 if (!isLt2M) {
  this.$message.error('上傳圖片大小不能超過 2MB!');
 }
 return isJPG && isLt2M;
 },
 handleAvatarSuccess(res, file) {//圖片上傳成功
 console.log(res);
 console.log(file);
 this.imageUrl = URL.createObjectURL(file.raw);
 },
 handleExceed(files, fileList) {//圖片上傳超過數(shù)量限制
 this.$message.error('上傳圖片不能超過6張!');
 console.log(file, fileList);
 },
 imgUploadError(err, file, fileList){//圖片上傳失敗調(diào)用
 console.log(err)
 this.$message.error('上傳圖片失敗!');
 }
 }
 }

3.controller

 @RequestMapping(value = "/imgUpload")
 public Wrapper imgUpload(HttpServletRequest req, MultipartHttpServletRequest multiReq)
  throws IOException {
 System.out.println("---" + fileUploadPath);//我這里用的springboot 在application.properties中配置,使用@Value 獲取的文件上傳目錄
 
 MultipartFile file = multiReq.getFile("file");
 String originalFilename = file.getOriginalFilename();
 String suffix = originalFilename.substring(originalFilename.indexOf("."));
 String localFileName = MD5Util.md5(file.getInputStream()) + suffix;
 File localFile = new File(fileUploadPath + localFileName);
 if (!localFile.exists()) {
  localFile.createNewFile();
 
  FileOutputStream fos = new FileOutputStream(
   localFile);
  FileInputStream fs = (FileInputStream) multiReq.getFile("img").getInputStream();
  byte[] buffer = new byte[1024];
  int len = 0;
  while ((len = fs.read(buffer)) != -1) {
  fos.write(buffer, 0, len);
  }
  fos.close();
  fs.close();
 
 } else {
  log.info("文件已存在??!");
 }
 
 return WrapMapper.wrap(
  Wrapper.SUCCESS_CODE,
  Wrapper.SUCCESS_MESSAGE,
  "http://localhost:8080/img/" + localFileName);//這里是我執(zhí)行封裝的返回結(jié)果,也可以使用map,
 }

4.MD5工具類

import java.io.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
 
public class MD5Util {
 
 private static char[] Digit = {'0', '1', '2', '3', '4', '5', '6', '7', '8',
  '9', 'a', 'b', 'c', 'd', 'e', 'f'};
 
 public static String getMd5Sum(String inputStr)
  throws NoSuchAlgorithmException {
 MessageDigest digest = MessageDigest.getInstance("MD5");
 byte[] inputStrByte = inputStr.getBytes();
 digest.update(inputStrByte, 0, inputStrByte.length);
 
 byte[] md5sum = digest.digest();
 
 StringBuffer sb = new StringBuffer();
 for (int i = 0; i < 16; i++) {
  char[] ob = new char[2];
  ob[0] = Digit[md5sum[i] >> 4 & 0x0F];
  ob[1] = Digit[md5sum[i] & 0x0F];
  String s = new String(ob);
  sb.append(s);
 }
 
 return sb.toString();
 }
 
 /**
 * 對字符串進(jìn)行 MD5 加密
 *
 * @param str
 *  待加密字符串
 *
 * @return 加密后字符串
 */
 public static String md5(String str) {
 MessageDigest md5 = null;
 try {
  md5 = MessageDigest.getInstance("MD5");
  md5.update(str.getBytes("UTF-8"));
 } catch (NoSuchAlgorithmException e) {
  throw new RuntimeException(e.getMessage());
 } catch (UnsupportedEncodingException e) {
  throw new RuntimeException(e.getMessage());
 }
 byte[] encodedValue = md5.digest();
 int j = encodedValue.length;
 char finalValue[] = new char[j * 2];
 int k = 0;
 for (int i = 0; i < j; i++) {
  byte encoded = encodedValue[i];
  finalValue[k++] = Digit[encoded >> 4 & 0xf];
  finalValue[k++] = Digit[encoded & 0xf];
 }
 
 return new String(finalValue);
 }
 
 /**
 * 簽名字符串
 *
 * @param text
 *  需要簽名的字符串
 * @param sign
 *  簽名結(jié)果
 * @return 簽名結(jié)果
 */
 public static boolean verify(String text, String sign) {
 String mysign = md5(text);
 if (mysign.equals(sign)) {
  return true;
 } else {
  return false;
 }
 }
 
 /**
 * 對文件進(jìn)行 MD5 加密
 *
 * @param file
 *  待加密的文件
 *
 * @return 文件加密后的 MD5 值
 * @throws IOException
 */
 public static String md5(File file) throws IOException {
 FileInputStream is = new FileInputStream(file);
 return md5(is);
 
 }
 
 
 public static String md5(InputStream inputStream) throws IOException {
 
 MessageDigest md5 = null;
 try {
  md5 = MessageDigest.getInstance("MD5");
  int n = 0;
  byte[] buffer = new byte[1024];
  do {
  n = inputStream.read(buffer);
  if (n > 0) {
   md5.update(buffer, 0, n);
  }
  } while (n != -1);
  inputStream.skip(0);
 } catch (NoSuchAlgorithmException e) {
  throw new RuntimeException(e.getMessage());
 } finally {
  inputStream.close();
 }
 
 byte[] encodedValue = md5.digest();
 
 int j = encodedValue.length;
 char finalValue[] = new char[j * 2];
 int k = 0;
 for (int i = 0; i < j; i++) {
  byte encoded = encodedValue[i];
  finalValue[k++] = Digit[encoded >> 4 & 0xf];
  finalValue[k++] = Digit[encoded & 0xf];
 }
 return new String(finalValue);
 }
}

5.效果

Vue + Element UI圖片上傳控件使用詳解

6.主要參考文檔 element 官方中文文檔,文檔中好多屬性介紹很籠統(tǒng)不夠詳細(xì),個人感覺比較坑。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

分享題目:Vue+ElementUI圖片上傳控件使用詳解
文章轉(zhuǎn)載:http://chinadenli.net/article2/jsigic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、ChatGPT網(wǎng)站設(shè)計、、軟件開發(fā)、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管
老司机精品视频在线免费看| 欧美日韩成人在线一区| 国产亚洲系列91精品| 国产丝袜美女诱惑一区二区| 毛片在线观看免费日韩| 91亚洲熟女少妇在线观看| 国产免费一区二区三区不卡| 国产成人精品一区二区在线看| 日韩欧美一区二区久久婷婷| 激情五月激情婷婷丁香| 91精品国产综合久久福利| 国产男女激情在线视频| 国产免费自拍黄片免费看| 日韩特级黄片免费观看| 国产内射在线激情一区| 色综合久久六月婷婷中文字幕| 国产色第一区不卡高清| 好吊日在线观看免费视频| 国产综合香蕉五月婷在线| 欧美色婷婷综合狠狠爱| 丝袜av一区二区三区四区五区| 天堂网中文字幕在线观看| 亚洲中文字幕高清乱码毛片| 99久久免费中文字幕| 少妇激情在线免费观看| 日韩日韩日韩日韩在线| 在线免费观看黄色美女| 在线欧洲免费无线码二区免费| 激情少妇一区二区三区| 国产在线小视频你懂的| 久久女同精品一区二区| 丝袜视频日本成人午夜视频| 免费福利午夜在线观看| 精品国产91亚洲一区二区三区| 国产又粗又猛又长又黄视频| 一区二区三区人妻在线| 国产乱久久亚洲国产精品| 国产又大又黄又粗又免费| 在线免费国产一区二区| 东北老熟妇全程露脸被内射| 国产成人精品午夜福利av免费|