2016-07-11 13 views
1

Anstatt eine Pfadvariable (zB für den Zugriff auf Bilder) in verschiedenen Teilen von JAVA Spring Controllern zu haben, gibt es eine Möglichkeit, eine Variable in der Konfigurationsdatei zu definieren es einfach durch eine solche Variable:Variable in Spring-Konfigurationsdatei definieren, um Zugriff auf externen Ordner mit Bildern zu haben

Config file: 
String imageFolder = "D:\\Projects\\project_name\\images\\"; 

Spring Controller: 
File outputFile = new File(imageFolder + img_name + "." + img_ext); 
ImageIO.write(image, img_ext, outputFile); 

Thaks im Voraus.

+0

wo federController? Was macht der obige Code? – SMA

+0

Ich denke, Sie möchten einen Bildordner zuordnen, der sich außerhalb Ihres Projektverzeichnisses befindet. [Dies] (http://stackoverflow.com/questions/1483063/how-to-handle-static-content-in-spring-mvc) Beitrag könnte Ihnen helfen. – zombie

+0

Spring Controller akzeptiert Bilder im Base64-Format und schreibt sie in den externen Ordner. Ich brauche String-Variable mit Pfad zum Ordner und verwenden Sie es an verschiedenen Orten. ist es möglich? – Dancyg

Antwort

0

eigene Lösung (im Boden aufgenommen):

web.xml:

<context-param> 
    <param-name>imageFolder</param-name> 
    <param-value>D:\Projects\project_name\src\main\webapp\resource\images\</param-value> 
</context-param> 

Controller:

@RestController 
public class nameController {  

    @Resource 
    private ServletContext servletContext; 

    @RequestMapping(value = "/getImage/{img_name:.+}") 
    public byte[] getImage(@PathVariable String img_name) throws InternalError { 
    byte[] data; 

    try { 
     String imageFolder = servletContext.getInitParameter("imageFolder"); 

     String realpath = imageFolder + img_name; 
     Path path = Paths.get(realpath); 
     data = Files.readAllBytes(path); 
    }catch (Exception e){ 
     data = null; 
    } 
    return data; 
    } 
}