2017-08-27 8 views
2

ファイルシステム(この場合はイメージ)をファイルシステムから取得して表示しようとしています。私はリソースのサブディレクトリからそれを行うことはできますが、私はファイルシステムに行くときにFileNotFound例外を与えています。Springブート - Get要求でファイルシステムからファイルを取得する

java.io.FileNotFoundException:ファイル:\ Y:\ケビン\ダウンロード\ pic_mountain.jpg(ファイル名、ディレクトリ名、またはボリュームラベルの構文が間違っている)

私のコードのすべての残りの部分はバニラ春です初期化から生成されたブート。ありがとう。 docsから

@RestController 
public class ImageProducerController { 

    @GetMapping("/get-text") 
    public @ResponseBody String getText() { 
     return "Hello World"; 
    } 

    @GetMapping(value = "/get-jpg", produces = MediaType.IMAGE_JPEG_VALUE) 
    public void getImage(HttpServletResponse response) throws IOException { 

     FileSystemResource imgFile = new FileSystemResource("file:///Y:/Kevin/downloads/pic_mountain.jpg"); 
//  ClassPathResource imgFile = new ClassPathResource("images/pic_mountain.jpg"); 
     System.out.println(imgFile.getURL()); 
     response.setContentType(MediaType.IMAGE_JPEG_VALUE); 
     StreamUtils.copy(imgFile.getInputStream(), response.getOutputStream()); 
    } 
} 
+0

なぜこのようなファイルシステムにアクセスしたいですか? –

+0

あなたはこのコードがあなたのPCの外で決して実行されないことを理解していますよね? –

答えて

1

public FileSystemResource(String path) 
Create a new FileSystemResource from a file path 

あなたのケースでのみY:/Kevin/downloads/pic_mountain.jpg

はそうあなたはこのようにそれを使用しようとする必要がありますので、コンストラクタは、URLのパス部分を期待:

FileSystemResource imgFile = new FileSystemResource("Y:/Kevin/downloads/pic_mountain.jpg"); 

Btw。あなたのパスに「ユーザー」が足りないことがありますか? - >Y:/Users/Kevin/downloads/pic_mountain.jpg

+0

ありがとう!それはうまくいった。私が見たすべての例は、その前に「ファイル:」の部分がありました。私は今、壁に頭を打つのを止めることができます。 – kjbeamer

関連する問題