@@ -22,19 +22,32 @@ public PicController(IHostingEnvironment env,
2222 _catalogContext = catalogContext ;
2323 }
2424
25- [ HttpGet ( "{filename }" ) ]
25+ [ HttpGet ( "{id }" ) ]
2626 // GET: /<controller>/
27- public IActionResult GetImage ( string filename )
27+ public async Task < IActionResult > GetImage ( int id )
2828 {
29- var webRoot = _env . WebRootPath ;
30- var path = Path . Combine ( webRoot , filename ) ;
29+ if ( id <= 0 )
30+ {
31+ return BadRequest ( ) ;
32+ }
3133
32- string imageFileExtension = Path . GetExtension ( filename ) ;
33- string mimetype = GetImageMimeTypeFromImageFileExtension ( imageFileExtension ) ;
34+ var item = await _catalogContext . CatalogItems
35+ . SingleOrDefaultAsync ( ci => ci . Id == id ) ;
36+
37+ if ( item != null )
38+ {
39+ var webRoot = _env . WebRootPath ;
40+ var path = Path . Combine ( webRoot , item . PictureFileName ) ;
3441
35- var buffer = System . IO . File . ReadAllBytes ( path ) ;
42+ string imageFileExtension = Path . GetExtension ( item . PictureFileName ) ;
43+ string mimetype = GetImageMimeTypeFromImageFileExtension ( imageFileExtension ) ;
44+
45+ var buffer = System . IO . File . ReadAllBytes ( path ) ;
46+
47+ return File ( buffer , mimetype ) ;
48+ }
3649
37- return File ( buffer , mimetype ) ;
50+ return NotFound ( ) ;
3851 }
3952
4053 private string GetImageMimeTypeFromImageFileExtension ( string extension )
@@ -43,29 +56,29 @@ private string GetImageMimeTypeFromImageFileExtension(string extension)
4356
4457 switch ( extension )
4558 {
46- case "png" :
59+ case ". png" :
4760 mimetype = "image/png" ;
4861 break ;
49- case "gif" :
62+ case ". gif" :
5063 mimetype = "image/gif" ;
5164 break ;
52- case "jpg" :
53- case "jpeg" :
65+ case ". jpg" :
66+ case ". jpeg" :
5467 mimetype = "image/jpeg" ;
5568 break ;
56- case "bmp" :
69+ case ". bmp" :
5770 mimetype = "image/bmp" ;
5871 break ;
59- case "tiff" :
72+ case ". tiff" :
6073 mimetype = "image/tiff" ;
6174 break ;
62- case "wmf" :
75+ case ". wmf" :
6376 mimetype = "image/wmf" ;
6477 break ;
65- case "jp2" :
78+ case ". jp2" :
6679 mimetype = "image/jp2" ;
6780 break ;
68- case "svg" :
81+ case ". svg" :
6982 mimetype = "image/svg+xml" ;
7083 break ;
7184 default :
0 commit comments