java 将文件上传到服务器的指定目录下
时间: 2023-09-06 07:07:38 浏览: 54
要将文件上传到服务器的指定目录下,可以使用 Java Servlet 的文件上传功能。下面是一个示例代码:
```java
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
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;
/**
* 上传数据及保存文件
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// 获取上传的文件集合
List<Part> parts = (List<Part>) request.getParts();
// 上传的目标文件夹路径
String uploadDir = "C:/upload/";
// 如果目标文件夹不存在,则创建
File fileSaveDir = new File(uploadDir);
if (!fileSaveDir.exists()) {
fileSaveDir.mkdir();
}
// 遍历上传的文件集合
for (Part part : parts) {
// 获取上传文件的名称
String fileName = extractFileName(part);
// 如果上传文件的名称不为空,则保存文件
if (fileName != null && !fileName.equals("")) {
// 保存上传的文件
part.write(uploadDir + fileName);
out.println(fileName + "上传成功!<br>");
}
}
}
/**
* 从上传的文件头中提取上传的文件名
*/
private String extractFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] items = contentDisp.split(";");
for (String str : items) {
if (str.trim().startsWith("filename")) {
return str.substring(str.indexOf("=") + 2, str.length() - 1);
}
}
return null;
}
}
```
上面的代码中,我们首先获取上传的文件集合,然后遍历文件集合,逐个保存文件到指定目录下。在保存文件之前,我们需要判断上传的目标文件夹是否存在,如果目标文件夹不存在,则创建。最后,我们通过 HTTP 响应向客户端返回上传结果。