gpt4 book ai didi

java - 使用servlet创建文件夹并上传文件

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

我有两个使用 tomcat 的网络项目..这是我的目录结构..

webapps
--project1
--WEB-INF
--project2
--WEB-INF

我使用 commons-fileupload..这是我在 project1 的 servlet 中的部分代码

String fileName = item.getName();    
String root = getServletContext().getRealPath("/");
File path = new File(root + "/uploads");

if (!path.exists()) {
path.mkdirs();
}

File uploadedFile = new File(path + File.separator + fileName);
item.write(uploadedFile);

这将在“project1”中创建“uploads”文件夹,但我想在“webapps”中创建“uploads”文件夹,因为我不希望在取消部署“project1”时“uploads”文件夹消失..

我已经尝试过 String root = System.getProperty("catalina.base"); 但没有用..

任何人都可以帮助我...在此先感谢

最佳答案

首先,在您的服务器中在 tomcat 安装文件夹之外创建一个文件夹,例如 /opt/myuser/files/upload。然后,在属性文件或 web.xml 中将此路径配置为 Servlet 初始配置,以使其可用于您拥有的任何 Web 应用程序。

如果使用属性文件:

file.upload.path = /opt/myuser/files/upload

如果 web.xml:

<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>your.package.MyServlet</servlet-class>
<init-param>
<param-name>FILE_UPLOAD_PATH</param-name>
<param-value>/opt/myuser/files/upload</param-value>
</init-param>
</servlet>

或者,如果您使用的是 Servlet 3.0 规范,则可以使用 @WebInitParam 注释配置初始化参数:

@WebServlet(name="MyServlet", urlPatterns = {"/MyServlet"},
initParams = {
@WebInitParam(name = "FILE_UPLOAD_PATH", value = "/opt/myuser/files/upload")
})
public class MyServlet extends HttpServlet {
private String fileUploadPath;
public void init(ServletConfig config) {
fileUploadPath = config.getInitParameter("FILE_UPLOAD_PATH");
}
//use fileUploadPath accordingly

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException) {
String fileName = ...; //retrieve it as you're doing it now
//using File(String parent, String name) constructor
//leave the JDK resolve the paths for you
File uploadedFile = new File(fileUploadPath, fileName);
//complete your work here...
}
}

关于java - 使用servlet创建文件夹并上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23452484/

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