SpringMVC页面上传图片-JAVA

目标:实现SpringMVC图片上传,路径可以使网络地址、本机地址

实现上传的步骤
1、导pom.xml

<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.3.1</version>
</dependency>

<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.4</version>
</dependency>

html页面:

表单提交中需要添加 :enctype=“multipart/form-data”

详情代码可参考

			<form action="${pageContext.request.contextPath}/upload.doo"
			method="post"  enctype="multipart/form-data">
			<!-- 正文区域 -->

			<div class="panel panel-default">
				<div class="panel-heading">图片上传</div>
				<input type="file" name="myPic">
				<input type="submit" name="submit" id="submit" value="提交">
			</div>
		</form>

Controller层:

package cn.hiponygou.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;

import org.springframework.web.servlet.ModelAndView;


import java.io.File;
import java.io.IOException;
import java.util.UUID;

@Controller("uploadController")
public class UploadController {
    private static  final String UPLOAD_PATH="F:/upload";



//    如何实现参数的封装:上传的时候,如何给出判断或者验证
//    需要:CommonsMultipartResolver   ,配置springMVC容器
    @RequestMapping("/upload.do")
    public ModelAndView upload(@RequestParam("myPic") MultipartFile myPic) throws IOException {

//        上传之后生成新的文件名 UUID 随机数类
        UUID rid= UUID.randomUUID();

        long uid = rid.getLeastSignificantBits();

//        取出后缀名,进行字符串的拼接
        String filename = myPic.getOriginalFilename();
//        使用String类方法
        String suffix = filename.substring(filename.lastIndexOf('.'));
//        1.文件在服务器上的存储
        File file=new File(UPLOAD_PATH,"/"+uid+suffix);

//        throw和try...catch 有什么区别

        myPic.transferTo(file);


//        2.文件地址的回显
        ModelAndView mv=new ModelAndView();
        mv.addObject("upload_file_path",file.getName());
        mv.setViewName("upload");




//        3.页面的跳转

    return mv;
    }

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值