servlet接收表單文件上傳并上傳到阿里oss指定目錄下
import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException; import java.io.InputStream; import java.util.UUID; @WebServlet(name = "OssUpload", value = "/OssUpload") @MultipartConfig public class OssUploadServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String endpoint = "endpoint"; String accessKeyId = ""; String accessKeySecret = ""; String bucketName = ""; // 確保你的表單設(shè)置了enctype="multipart/form-data" // 假設(shè)上傳的文件字段名為"file" Part filePart = request.getPart("file"); String fileName = filePart.getSubmittedFileName(); // 使用SDK上傳文件 OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); try { // 生成新的文件名,避免重名沖突 String newFileName = UUID.randomUUID().toString() + "-" + fileName; InputStream inputStream = filePart.getInputStream(); ossClient.putObject(bucketName, "images/2024/" + newFileName, inputStream); ossClient.shutdown(); // 返回文件的URL或其他處理 String fileUrl = "https://" + bucketName + "." + endpoint + "/" + newFileName; response.getWriter().write("File uploaded successfully: " + fileUrl); } catch (Exception e) { response.getWriter().write("Error: " + e.getMessage()); } } }