gpt4 book ai didi

java - Spring MVC 上传文件到Tomcat家目录

转载 作者:行者123 更新时间:2023-11-28 22:26:44 25 4
gpt4 key购买 nike

Spring MVC 每次上传都会在 tomcat 的主目录中上传文件,但不会被删除。

有两个问题,

  1. Tomcat 进程对 PROD 中的 tomcat 主目录没有写权限。所以会得到权限被拒绝的错误
  2. 如果我们授予权限,那么将创建大量文件但永远不会删除。

有什么方法可以将文件作为 byte[] 从 JSP 上传到 Spring MVC Controller

最佳答案

一种解决方案是扩展 AbstractAnnotationConfigDispatcherServletInitializer覆盖其继承的 customizeRegistration()方法。

MultipartConfigElement 的对象可以提供类以配置与多部分相关的行为:

import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletRegistration;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

. . .

@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
registration.setMultipartConfig(
new MultipartConfigElement(LOCATION, MAX_FILE_SIZE, MAX_REQUEST_SIZE, FILE_SIZE_THRESHOLD)
);
}

private static final String LOCATION = "C:/temp/"; // Temporary location where files will be stored
private static final long MAX_FILE_SIZE = 1024 * 1024 * 5; // 5MB : Max file size.
// Beyond that size spring will throw exception.
private static final long MAX_REQUEST_SIZE = 1024 * 1024 * 20; // 20MB : Total request size containing Multi part.
private static final int FILE_SIZE_THRESHOLD = 0; // Size threshold after which files will be written to disk

}

参见:Spring MVC 4 File Upload Example using Servlet 3 MultiPartConfigElement

关于java - Spring MVC 上传文件到Tomcat家目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41259515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com