Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да записвам и извличам изображение на моя сървър в java webapp

вместо да го запиша на моето C устройство, ще го стартирам на сървъра, но къде трябва да съхранявам изображението, за да го извлека по-късно и да го покажа в xhtml файл?

Това зависи от това колко контрол имате върху конфигурирането на сървъра. Идеално би било да конфигурирате фиксиран път извън папката на Tomcat webapps. Например /var/webapp/upload . Можете да зададете този път като аргумент на VM или променлива на средата, така че вашето уеб приложение да може да го извлича програмно, без да е необходимо да променяте кода.

Например, когато посочвате като VM аргумент -Dupload.location=/var/webapp/upload , можете да завършите качването по следния начин:

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.

Що се отнася до връщането на файла, най-идеалното би било да добавите местоположението за качване като отделен <Context> към Tomcat. Напр.

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

По този начин можете да получите достъп до него директно от http://example.com/uploads/foo-123456 .ext

Ако нямате нулев контрол върху конфигурирането на сървъра, тогава, добре, най-добрият залог е съхраняването в DB или изпращането до хост на трета страна, като Amazon S3.

Вижте също:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да активирате SSL/TLS за MySQL в Ubuntu

  2. Как да вмъкна няколко стойности в квадратчетата за отметка в таблица?

  3. Какво означава да избягаш от низ?

  4. PDO::__construct():Сървърът изпрати набор от знаци (255), неизвестен на клиента. Моля, докладвайте на разработчиците

  5. MAKETIME() Примери – MySQL