对于某个project来说,配置tomcat服务器的输出路径被我忽视了。最近在完成javaweb文件上传下载的学习时,发现上传的文件不知道下载到哪里去了(或许我该去补补maven基础...),然后才发现自己是个傻子...
首先,需要知道项目的输出路径可以更改:默认的就是如下图的\(整个)工程名\out文件夹下
然后,进一步的这个单独的module的输出路径(output directory)默认在各个artifact(对应不同的module)下:
或者,也可以直接看/out文件夹:
注意:现在是没有上传任何文件的,这里提供下载的servlet:
package com.demo;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.File;
import java.io.IOException;
@WebServlet(name="FileUploadServlet",urlPatterns={"/fileUpload"})
@MultipartConfig(location="D:\\",fileSizeThreshold=1024)
public class FileUploadServlet extends HttpServlet {
// 返回上传来的文件名
private String getFilename(Part part){
String fname = null;
// 返回上传的文件部分的content-disposition请求头的值
String header = part.getHeader("content-disposition");
System.out.println(header);
// 返回不带路径的文件名
fname = header.substring(header.lastIndexOf("=")+2,
header.length()-1);
return fname;
}
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// 返回Web应用程序文档根目录
String path = this.getServletContext().getRealPath("/");
String mnumber = request.getParameter("mnumber");
Part p = request.getPart("fileName");
String message="";
if(p.getSize() >1024*1024){ // 上传的文件不能超过1MB大小
p.delete();
message = "文件太大,不能上传!";
}else{
// 文件存储在文档根目录下member子目录中会员号子目录中
path = path + "\\member\\" +mnumber;
File f = new File(path);
if( !f.exists()){ // 若目录不存在,则创建目录
f.mkdirs();
}
String fname = getFilename(p); // 得到文件名
System.out.println(fname);
p.write(path + "\\"+ fname); // 将上传的文件写入磁盘
message = "文件上传成功!";
}
request.setAttribute("message", message);
RequestDispatcher rd = request.getRequestDispatcher("/fileUpload.jsp");
rd.forward(request, response);
}
}
然后,根据页面的需求:
上传一个1.png
上传成功!会显示提示信息:
而且控制台输出上传文件的信息(getFileName方法中定义的):
此时,/out下已有目标文件夹和文件: