用java写一个图片上传的接口
时间: 2024-05-13 21:15:17 浏览: 80
Java实现图片上传
好的,以下是一个简单的Java图片上传接口:
```java
import java.io.File;
import java.io.IOException;
import java.util.UUID;
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("/upload")
@MultipartConfig
public class ImageUploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String uploadPath = getServletContext().getRealPath("") + File.separator + "uploads";
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
for (Part part : request.getParts()) {
String fileName = getFileName(part);
String uniqueID = UUID.randomUUID().toString();
part.write(uploadPath + File.separator + uniqueID + fileName);
}
response.getWriter().print("Upload Success!");
}
private String getFileName(Part part) {
String contentDisp = part.getHeader("content-disposition");
String[] tokens = contentDisp.split(";");
for (String token : tokens) {
if (token.trim().startsWith("filename")) {
return token.substring(token.indexOf("=") + 2, token.length() - 1);
}
}
return "";
}
}
```
在这个示例中,我们使用了Java Servlet的MultipartConfig注释,这样我们就可以处理文件上传。在doPost方法中,我们首先获取上传目录的路径,然后创建一个File对象,如果该目录不存在,我们就创建它。接下来,我们遍历请求中的所有部分,并使用UUID生成唯一的文件名,将文件写入上传目录中。最后,我们向客户端发送一个简单的成功响应。
您可以在Web.xml文件中配置Servlet映射。例如:
```xml
<servlet>
<servlet-name>ImageUploadServlet</servlet-name>
<servlet-class>com.example.ImageUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ImageUploadServlet</servlet-name>
<url-pattern>/upload</url-pattern>
</servlet-mapping>
```
这样,您就可以访问/upload路径来上传文件了。请注意,这个示例没有进行任何错误处理,您需要根据自己的需求进行修改。
阅读全文