java工具类文件上传
时间: 2023-10-12 12:20:19 浏览: 74
FileUploadUtil.java(文件上传工具类)
以下是一个基于Java的文件上传工具类示例:
```
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.Part;
public class FileUploadUtil {
public static final String UPLOAD_DIR = "uploads"; // 设置上传目录
public static String uploadFile(HttpServletRequest request, Part filePart) throws ServletException, IOException {
String fileName = getFileName(filePart); // 获取文件名
String uploadPath = request.getServletContext().getRealPath("") + File.separator + UPLOAD_DIR; // 获取上传目录的绝对路径
File uploadDir = new File(uploadPath); // 创建上传目录
if (!uploadDir.exists()) { // 如果目录不存在,则创建目录
uploadDir.mkdir();
}
Path filePath = Paths.get(uploadPath + File.separator + fileName); // 获取上传文件的路径
Files.copy(filePart.getInputStream(), filePath); // 将文件从临时目录复制到上传目录
return fileName;
}
public static String getFileName(final Part part) {
String[] parts = part.getHeader("content-disposition").split(";");
for (String content : parts) {
if (content.trim().startsWith("filename")) {
return content.substring(content.indexOf("=") + 2, content.length() - 1);
}
}
return "";
}
}
```
使用示例:
```
try {
String fileName = FileUploadUtil.uploadFile(request, request.getPart("file")); // 上传文件
System.out.println("文件名:" + fileName + " 已上传成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("上传文件失败!");
}
```
其中,`request`为`HttpServletRequest`对象,`request.getPart("file")`为获取上传文件的`Part`对象。上传后的文件将保存在指定的上传目录下,文件名为原始文件名。可以根据自己的需求修改上传目录的路径和文件名的获取方式。
阅读全文