ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

4.3. 上传文件和HttpServletRequest

2022-07-06 05:00:07  阅读:189  来源: 互联网

标签:HttpServletRequest String 4.3 uploadFile servlet req multipart 上传


@RestController
public class FileUploadController (
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
  @PostMapping("/upload")
  public String upload(@RequestPart("file")MultipartFile uploadFile, HttpServletRequest req) {
    // 保存路径为项目运行目录下的uploadFile 文件夫     String realPath = req.getSession().getServletContext().getRealPath("/uploadFile/");     String format = sdf.format(new Date());     File folder = new File(realPath + format);
    // 文件夹不存在就创建一个     if(!folder.isDirectory()) {       folder.mkdirs();     }
    // 生成一个新的文件名
    // UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写
    // 标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)
    String oldName = uploadFile.getOriginalFilename() ;     
    String newName = UUID.randomUUID().toString()
              + oldName.substring(oldName.lastindexOf("·"), oldName.length());
    try {
      // 保存文件       uploadFile.transferTo(new File(folder, newName));

      // filePath = "http://localhost:8080/uploadFile/..."
      // req.getScheme() = http
      //
req.getServerName() = localhost:8080
      String filePath = req.getScheme() + "://" + req.getServerName() + ":" 
                + req.getServerPort()+ "/uploadFile/" + format + newName;       return filePath ;     } catch (IOException e) {       e.printStackTrace();       return "上传失败!";   }
}

 

在4 . 2 节中向读者介绍过静态资源位置除了classpath 下面的4 个路径之外,还有一个"/" 此这里的图片虽然是静态资源却可以直接访问到。

// 表示是否开启文件上传支持,默认为true。
spring.servlet.multipart.enabled=true
// 表示文件写入磁盘的闽值,默认为0
spring.servlet.multipart.file-size-threshold=O
// 表示上传文件的临时保存位置 spring.servlet.multipart.location=E:\\temp
// 表示上传的羊个文件的最大大小,默认为1MB spring.servlet.multipart.max-file-size=lMB
// 表示多文件上传时文件的总大小,默认为10MB spring.servlet.multipart.max-request-size=lOMB
// 表示文件是否延迟解析,默认为false spring.servlet.multipart.resolve-lazily=false

 

如果同时上传多个文件

String upload(@RequestPart("file") MultipartFile[] uploadFile, HttpServletRequest req)

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

HttpServletRequest 的获取方法
1.

@GetMapping("/method1")
public String method1(HttpServletRequest request) {
    System.out.println("Request URI: " + request.getRequestURI());
    return "Invoke HttpServletRequest by method param.";
}

2.

@Autowired
private HttpServletRequest autowiredRequest;

@GetMapping("/method2")
public String method2() {
    System.out.println("Request URI: " + autowiredRequest.getRequestURI());
    return "Invoke HttpServletRequest by @Autowired.";
}

3.

@GetMapping("/method3")
public String method3() {
    HttpServletRequest request =
            ((ServletRequestAttributes) (RequestContextHolder.currentRequestAttributes())).getRequest();
    System.out.println("Request URI: " + request.getRequestURI());
    return "Invoke HttpServletRequest by ServletRequestAttributes.";
}

 



标签:HttpServletRequest,String,4.3,uploadFile,servlet,req,multipart,上传
来源: https://www.cnblogs.com/ShengLiu/p/16449281.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有