springboot+前端实现文件(图片)上传到指定目录

"本文介绍了如何使用HTML5的`<input type="file">`结合axios进行文件上传,前端通过FormData构造参数,后端Spring Boot处理并存储图片。展示了上传过程及所需依赖配置。"
摘要由CSDN通过智能技术生成

第一步
前端写html的代码

       <!--            联系方式-->
            <div class="layui-form-item">
                <label for="file" class="layui-form-label">
                    <span class="x-red">*</span>上传图片
                </label>
                <div class="layui-input-inline">
                    <input type="file" id="file" name="file" v-model="file" required="" lay-verify="required" autocomplete="off" class="layui-input">
                </div>
                <div class="layui-form-mid layui-word-aux">
                    <span class="x-red">*</span>上传图片
                </div>
            </div>
            //完成增加方法
            add:function (){
                let params = new FormData();
                params.append('id',this.id);
                params.append('saleId',this.saleId);
                params.append('saleName',this.saleName);
                params.append('sex',this.sex);
                 let files = $("#file")[0].files[0];
                params.append('file',files);
                let config = {
                    'Content-Type':false
                };
                axios.post('/sale/add', params,config)
                    .then(function (response) {
                        if (response.status == 200){
                            console.log(response.data);
                            //执行重定向
                            // window.location.href = response.data;
                            var index = parent.layer.getFrameIndex(window.name);
                            //关闭当前页 关闭小弹窗
                            parent.layer.close(index);
                            parent.location.reload(); //刷新父页面

                        }
                    })
                    .catch(function (error) {
                        // console.log(error.data);//undefined,之前以为这样可以拿到错误信息
                        // console.log(error.response.data.rentCarTime);//可以拿到后端返回的信息
                    });

            }

在这里插入图片描述
后端需要导入的pom依赖

        <!-- 文件上传 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
#文件上传到指定项目目录
upload-path: E:/car-manager/src/main/resources/static/images/
spring:
resources:
static-locations: classpath:/static/,file:${upload-path}
spring.http.multipart.enabled=false
multipart.maxFileSize=5000KB
multipart.maxRequestSize=5000KB

controller

    @Value("${upload-path}")
    private String uploadPath;

	
	//增
    @PostMapping("/add")
    @ResponseBody
    public String saleAdd(Sale sale, FileAll fileAll) throws IOException {
        System.out.println(sale);
        System.out.println(fileAll.getFile());
        MultipartFile file = fileAll.getFile();
        if (!file.isEmpty()){
//           获得图片名字
           String filename = file.getOriginalFilename();
//           将完整路径放到一个对象里面
           String fileAlls = uploadPath+filename;
            System.out.println(uploadPath);
            System.out.println(fileAlls);
//            把图片的名字放到sale对象里面保存
           sale.setImgPath(filename);
//           保存到数据库
           saleService.save(sale);
//           保存到项目的指定文件夹
           FileUtils.copyInputStreamToFile(file.getInputStream(),new File(fileAlls));
       }
        return null;
    }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值