Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách tôi lưu và truy xuất hình ảnh trên máy chủ của mình trong ứng dụng web java

thay vì ghi nó vào ổ C của tôi, tôi sẽ chạy nó trên máy chủ, nhưng tôi nên lưu hình ảnh ở đâu để sau này truy xuất và hiển thị trong tệp xhtml?

Điều đó phụ thuộc vào mức độ kiểm soát của bạn đối với việc định cấu hình máy chủ. Lý tưởng nhất là định cấu hình một đường dẫn cố định bên ngoài thư mục ứng dụng web Tomcat. Ví dụ:/var/webapp/upload . Bạn có thể đặt đường dẫn này làm đối số VM hoặc biến môi trường để ứng dụng web của bạn có thể truy xuất nó theo chương trình mà không cần thay đổi mã.

Ví dụ:khi chỉ định làm đối số VM -Dupload.location=/var/webapp/upload , bạn có thể hoàn tất quá trình tải lên như sau:

Path folder = Paths.get(System.getProperty("upload.location"));
String filename = FilenameUtils.getBaseName(uploadedFile.getName()); 
String extension = FilenameUtils.getExtension(uploadedFile.getName());
Path file = Files.createTempFile(folder, filename + "-", "." + extension);

try (InputStream input = uploadedFile.getInputStream()) {
    Files.copy(input, file, StandardCopyOption.REPLACE_EXISTING);
}

String uploadedFileName = file.getFileName().toString();
// Now store it in DB.

Đối với việc cung cấp tệp trở lại, lý tưởng nhất là thêm vị trí tải lên dưới dạng một <Context> riêng biệt đến Tomcat. Ví dụ:

<Context docBase="/var/webapp/upload" path="/uploads" />

Bằng cách này, bạn có thể truy cập trực tiếp bằng cách http://example.com/uploads/foo-123456 .ext

Nếu bạn không có quyền kiểm soát đối với việc định cấu hình máy chủ, thì tốt nhất, bạn nên lưu trữ trong DB hoặc gửi đến máy chủ bên thứ ba, chẳng hạn như Amazon S3.

Xem thêm:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt giữa =null và IS NULL là gì?

  2. Hàm SUM () trong MySQL

  3. Cột được tính từ cột khác?

  4. Giả lập mệnh đề MySQL LIMIT trong Microsoft SQL Server 2000

  5. tên trường mysql từ biến