提供java上传文件到服务器的完整代码
时间: 2023-08-27 08:03:57 浏览: 86
Java如何实现上传文件到服务器指定目录
5星 · 资源好评率100%
好的,以下是一个简单的 Java 上传文件到服务器的完整代码:
```java
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.file.StandardCopyOption;
import java.util.List;
import javax.servlet.ServletException;
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("/uploadServlet")
public class UploadServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static final String UPLOAD_DIR = "uploads";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// 获取上传文件的目录
String applicationPath = request.getServletContext().getRealPath("");
String uploadFilePath = applicationPath + File.separator + UPLOAD_DIR;
// 如果上传文件的目录不存在,则创建它
File fileSaveDir = new File(uploadFilePath);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdirs();
}
String fileName = "";
String filePath = "";
// 处理上传的文件
for (Part part : request.getParts()) {
fileName = getFileName(part);
filePath = uploadFilePath + File.separator + fileName;
part.write(filePath);
}
// 将上传的文件路径发送回客户端
out.println("文件上传成功,路径为:" + filePath);
}
// 获取上传文件的文件名
private String getFileName(final Part part) {
final String partHeader = part.getHeader("content-disposition");
for (String content : part.getHeader("content-disposition").split(";")) {
if (content.trim().startsWith("filename")) {
return content.substring(content.indexOf('=') + 1).trim().replace("\"", "");
}
}
return null;
}
}
```
这个代码中,首先定义了一个 `UPLOAD_DIR` 常量来存储上传文件的目录,然后在 `doPost()` 方法中获取上传文件的目录,如果该目录不存在,则创建它。接下来,使用 `request.getParts()` 方法获取上传的文件,循环处理每一个文件并将其存储到上传文件的目录中。最后,将上传文件的路径发送回客户端。其中,通过 `getFileName()` 方法获取上传文件的文件名。
阅读全文