2016-04-22 2 views
0

В моем проекте я загружаю изображения с помощью метода в upload method. Каталог проекта:Как получить путь загрузки изображений в рамки Sparkjava?

Project 
    |---src/main/java 
    |---src/main/resources 
        |---static 
          |---css 
           |---default.css 
    |---upload 
     |---1.jpg 
     |---2.jpg 

Страница вид визуализации по FreeMarker. В моем файле showimage.ftl img tag <img src="...">, как определить загруженный путь изображения в src.

Если вы загрузите изображение в src/main/resources, я могу использовать метод staticFileLocation для доступа, но я не могу загрузить изображения в каталог ресурсов.

ответ

0

Вам необходимо получить поток файла и отправить сырой ответ. Просто измените код, чтобы получить гибкий путь в зависимости от объекта запроса.

try { 
    String path = "upload/1.jpg"; 
    Path p = Paths.get(path); 

    InputStream is = new FileInputStream(p.toFile()); 

    res.raw().setContentType(Files.probeContentType(p)); 
    res.raw().setHeader("Content-Disposition", "inline; filename=" + p.getFileName()); 

    byte[] buffer = new byte[1024]; 
    int len; 
    while ((len = is.read(buffer)) > 0) { 
     res.raw().getOutputStream().write(buffer, 0, len); 
    } 

    String result = IOUtils.toString(is); 
    is.close(); 
    return result.trim(); 
} catch (Exception e) { // handle the exceptions the way you want 
    logger.error("Error while getting resource", e); 
    res.status(500); 
    return ""; 
} 
Смежные вопросы