91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-17 04:48:24 來源:腳本之家 閱讀:162 作者:天青色等煙雨11 欄目:web開發

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

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) {//預覽圖片時調用
 console.log(file);
 this.dialogImageUrl = file.url;
 this.dialogVisible = true;
 },
 
 beforeAvatarUpload(file) {//文件上傳之前調用做一些攔截限制
 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) {//圖片上傳超過數量限制
 this.$message.error('上傳圖片不能超過6張!');
 console.log(file, fileList);
 },
 imgUploadError(err, file, fileList){//圖片上傳失敗調用
 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);//這里是我執行封裝的返回結果,也可以使用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();
 }
 
 /**
 * 對字符串進行 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
 *  簽名結果
 * @return 簽名結果
 */
 public static boolean verify(String text, String sign) {
 String mysign = md5(text);
 if (mysign.equals(sign)) {
  return true;
 } else {
  return false;
 }
 }
 
 /**
 * 對文件進行 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 官方中文文檔,文檔中好多屬性介紹很籠統不夠詳細,個人感覺比較坑。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

贵港市| 香河县| 漾濞| 黄浦区| 威海市| 鄂尔多斯市| 新野县| 昌黎县| 墨竹工卡县| 城步| 泌阳县| 禄劝| 建平县| 南召县| 彭州市| 巴林左旗| 通山县| 阳朔县| 旺苍县| 渝中区| 和静县| 白朗县| 独山县| 垫江县| 嫩江县| 栾城县| 大埔县| 诏安县| 延庆县| 岗巴县| 修水县| 二连浩特市| 土默特右旗| 乌拉特前旗| 宜阳县| 兴城市| 甘德县| 龙门县| 叶城县| 夏津县| 新和县|