Java 实现图片上传
Java 实现图片上传可以使用 Servlet 和 JSP 技术。
以下是一个简单的实现步骤:
- 创建一个 HTML 表单,包含一个文件上传控件。
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
- 创建一个 Servlet 处理文件上传请求。
@WebServlet("/upload")
@MultipartConfig(maxFileSize = 1024 * 1024 * 10) // 限制上传文件大小为 10MB
public class UploadServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Part filePart = request.getPart("file"); // 获取上传文件
String fileName = filePart.getSubmittedFileName(); // 获取上传文件名
InputStream fileContent = filePart.getInputStream(); // 获取上传文件流
// 处理上传文件
}
}
- 处理上传文件。可以将文件保存到服务器本地磁盘或者上传到云存储等。
// 保存到本地磁盘
String uploadPath = getServletContext().getRealPath("") + File.separator + "uploads";
File uploadDir = new File(uploadPath);
if (!uploadDir.exists()) {
uploadDir.mkdir();
}
File file = new File(uploadDir, fileName);
try (OutputStream out = new FileOutputStream(file)) {
byte[] buffer = new byte[1024];
int length;
while ((length = fileContent.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
}
// 上传到云存储
String accessKeyId = "...";
String accessKeySecret = "...";
String endpoint = "...";
String bucketName = "...";
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
ossClient.putObject(bucketName, fileName, fileContent);
} finally {
ossClient.shutdown();
}
- 返回上传结果。
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("上传成功");
以上就是一个简单的 Java 实现图片上传的示例。实际应用中,还需要考虑文件大小、文件类型、文件重名等问题,以及错误处理和安全性等方面的优化
原文地址: https://www.cveoy.top/t/topic/chFV 著作权归作者所有。请勿转载和采集!