Java 实现图片上传可以使用 Servlet 和 JSP 技术。

以下是一个简单的实现步骤:

  1. 创建一个 HTML 表单,包含一个文件上传控件。
<form action="upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="上传">
</form>
  1. 创建一个 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(); // 获取上传文件流
        // 处理上传文件
    }
}
  1. 处理上传文件。可以将文件保存到服务器本地磁盘或者上传到云存储等。
// 保存到本地磁盘
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();
}
  1. 返回上传结果。
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
response.getWriter().write("上传成功");

以上就是一个简单的 Java 实现图片上传的示例。实际应用中,还需要考虑文件大小、文件类型、文件重名等问题,以及错误处理和安全性等方面的优化

Java 实现图片上传

原文地址: https://www.cveoy.top/t/topic/chFV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录