前端
图片上传
<template><div class="comment-wrapper"><el-form :model="form" style=" padding: 20px;" label-width="80px"><el-form-item label="评价内容"><el-input v-model="form.comment_content" type="textarea"></el-input></el-form-item><el-form-item label="上传图片"><el-uploadaction="http://localhost:8081/upload/file"list-type="picture-card":on-preview="handlePictureCardPreview":on-success="uploadSuccess":on-remove="handleRemove"><i class="el-icon-plus"></i></el-upload><el-dialog :visible.sync="dialogVisible"><img width="100%" :src="dialogImageUrl" alt=""></el-dialog></el-form-item><el-form-item style="margin-top: 15px"><el-button type="primary" @click="submitForm">提交评价</el-button></el-form-item></el-form></div>
</template><script>
export default {name: "Comment",data() {return {dialogImageUrl: '',dialogVisible: false,img_url_list:[],form: {comment_username: window.sessionStorage.getItem("token"),comment_content: '',comment_img_url: ''}};},methods: {uploadSuccess(response, file, fileList) {this.img_url_list.push(response.data);},handleRemove(file, fileList) {console.log(1, this.img_url_list);let name = file.response.data;for (let i=0; i<this.img_url_list.length; i++){if (this.img_url_list[i] == name){this.img_url_list.splice(i, 1)}}console.log(1, this.img_url_list);},handlePictureCardPreview(file) {this.dialogImageUrl = file.url;this.dialogVisible = true;},submitForm() {if(this.img_url_list.length > 0){let str = '';for (var i = 0; i < this.img_url_list.length; i++) {str += this.img_url_list[i]+ ",";}str = str.substr(0, str.length - 1);this.form.comment_img_url=str;}this.$http.post("/comment/add", this.form).then(result => {this.$message.success("评论成功");this.$router.push('/order');})}},created() {let orderId = this.$route.query.orderId;this.form.order_id = orderId;}}
</script><style scoped>
.comment-wrapper{margin: 15px;box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);border-radius: 15px;height: 500px;
}
/deep/ .el-form-item{width: 50%;margin: 15px auto;
}
/deep/ .el-textarea__inner{height: 150px;
}
.avatar-uploader {display: flex;justify-content: center;align-items: center;
}.avatar {width: 100px;height: 100px;object-fit: cover;
}.avatar-uploader-icon {font-size: 28px;color:
}
</style>
图片预览
<div class="comment-img" v-for="img in item.comment_img_list"><img :src="img" @click="open(img)"/></div>
open(src){this.$alert('<img style="width: 100%" src="'+src+'"></img>', '', {dangerouslyUseHTMLString: true});},
后台代码
package com.wang.wangblog.controller.admin;import com.wang.wangblog.config.Constants;
import com.wang.wangblog.model.Vo.Result;
import com.wang.wangblog.utils.MyBlogUtils;
import com.wang.wangblog.utils.ResultGenerator;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;@Controller
@RequestMapping("/admin")
public class UploadController {@Value("${upload.path:E:\\imgs}")private String path;@PostMapping({"/upload/file"})@ResponseBodypublic Result upload(HttpServletRequest httpServletRequest, @RequestParam("file") MultipartFile file) throws URISyntaxException {String fileName = file.getOriginalFilename();String suffixName = fileName.substring(fileName.lastIndexOf("."));//生成文件名称通用方法SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");Random r = new Random();StringBuilder tempName = new StringBuilder();tempName.append(sdf.format(new Date())).append(r.nextInt(100)).append(suffixName);String newFileName = tempName.toString();String month = new SimpleDateFormat("yyyyMM").format(new Date()) + File.separator;String destPath = path + month;File fileDirectory = new File(destPath);//创建文件File destFile = new File(destPath + newFileName);try {if (!fileDirectory.exists()) {if (!fileDirectory.mkdir()) {throw new IOException("文件夹创建失败,路径为:" + fileDirectory);}}file.transferTo(destFile);} catch (IOException e) {e.printStackTrace();}Result result = ResultGenerator.genSuccessResult();result.setData(MyBlogUtils.getHost(new URI(httpServletRequest.getRequestURL() + "")) + "/upload/" +month+ newFileName);return result;}}