我在下面有一个servlet程序,用于上传文件并将其保存到Web位置路径。我在使用Glassfish Server的NetBeans中运行程序。但是,当我接受客户输入时,它会给我异常
java.io.FileNotFoundException:C:\ Users \ 422405 \ personal_domain \ generated \ jsp \ HelloWorld \ tmp \ C:\ Users \ 422405 \ Desktop \ Mohit_prac \ HelloWorld \ build \ web \ uploadFiles \ sas.txt(The文件名,目录名或卷标语法不正确)
以下是代码:
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
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;
@WebServlet("/upl")
@MultipartConfig(location="/tmp",fileSizeThreshold=1024*1024*2, // 2MB
maxFileSize=1024*1024*10, // 10MB
maxRequestSize=1024*1024*50
) // 50MB
public class upl extends HttpServlet {
/**
* Name of the directory where uploaded files will be saved, relative to
* the web application directory.
*/
private static final String SAVE_DIR = "uploadFiles";
/**
* handles file upload
*/
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// gets absolute path of the web application
String appPath = request.getServletContext().getRealPath("");
// constructs path of the directory to save uploaded file
String savePath = appPath+ File.separator + SAVE_DIR;
// creates the save directory if it does not exists
File fileSaveDir = new File(savePath);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdir();
out.println("hisucess");
}
Part part=request.getPart("file");
out.println("hi"+part);
out.println("initial_star"+appPath);
out.println("koooooo"+savePath);
String fileName=extractFileName(part);
out.println("nameeeeeeeeeeeeeeee"+fileName);
part.write(savePath + File.separator + "sas.txt");
// for (Part part : request.getParts()) {
// String fileName = extractFileName(part);
/// part.write(savePath + File.separator + fileName);
// }
//request.setAttribute("message", "Upload has been done successfully!");
// getServletContext().getRequestDispatcher("/message.jsp").forward(
// request, response);
}
/**
* Extracts file name from HTTP header content-disposition
*/
private String extractFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] items = contentDisp.split(";");
for (String s : items) {
if (s.trim().startsWith("filename")) {
return s.substring(s.indexOf("=") + 2, s.length()-1);
}
}
return "";
}
}