Spring boot Thymeleaf, отображающий изображение из базы данных; - PullRequest
0 голосов
/ 13 июля 2020

Я схожу с ума, потому что провожу целый день и все еще не могу решить эту проблему. На мой взгляд, это правильный путь, и я также использовал абсолютный путь для изображения, например file: // something, но это тоже не сработало. Я хочу отображать изображения в объекте списка массивов. На первом рисунке изображение не отображается, хотя это правильный путь в консоли, а второе изображение - th: src = "$ {list.storedFilePath}", которое я использовал для тега изображения. Я новичок в тимелеафе, и я искал в Google и просмотрел все ресурсы, но все еще не смог решить. (Ps Я пробовал th: src = "'/' + $ {list.storedFilePath}", но это тоже не сработало. )

Это моя страница просмотра

 <div class="row cat-pd" onclick="location.href='productDetail.do'">
                     <div class="col-md-6" style="width:280px;" th:each="list:${list}">
                        <div class="small-box-c">
                           <div class="small-img-b">
                              <img th:src="'http://localhost:8090/'+${list.storedFilePath}" class="img-responsive"  alt="Image"/>
                           </div>
                           <div class="dit-t clearfix">
                              <div class="left-ti">
                                 <h4 th:text="${list.pName}"></h4>
                                 <p>By <span>Beko</span> under <span>Lights</span></p>
                              </div>
                              <a th:text="${list.price}+'원(하루)'"> <br>
                                     </a>
                           </div>
                        </div>
                     </div>
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer{

    @Bean
    public CommonsMultipartResolver multipartResolver() {
        CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
        commonsMultipartResolver.setDefaultEncoding("UTF-8");
        commonsMultipartResolver.setMaxUploadSizePerFile(5 * 1024 * 1024);
        return commonsMultipartResolver;
    }
@Component
public class FileUtils {
    
    public List<FileDto> parseFileInfo(int pNo, MultipartHttpServletRequest multipartHttpServletRequest) throws Exception{
        
        if(ObjectUtils.isEmpty(multipartHttpServletRequest)) {
            return null;
        }
        List<FileDto> fileList = new ArrayList<>();
        
        DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyyMMdd"); 
        ZonedDateTime current = ZonedDateTime.now();
        String path = "images/"+current.format(format);
        File file1 = new File(path);
        if(file1.exists() == false){
            file1.mkdirs();
        }
        
        Iterator<String> iterator = multipartHttpServletRequest.getFileNames();
        
        String newFileName, originalFileExtension, contentType;
        
        while(iterator.hasNext()){
            List<MultipartFile> list = multipartHttpServletRequest.getFiles(iterator.next());
            for (MultipartFile multipartFile : list){
                if(multipartFile.isEmpty() == false){
                    contentType = multipartFile.getContentType();
                    if(ObjectUtils.isEmpty(contentType)){
                        break;
                    }
                    else{
                        if(contentType.contains("image/jpeg")) {
                            originalFileExtension = ".jpg";
                        }
                        else if(contentType.contains("image/png")) {
                            originalFileExtension = ".png";
                        }
                        else if(contentType.contains("image/gif")) {
                            originalFileExtension = ".gif";
                        }
                        else{
                            break;
                        }
                    }
                    
                    newFileName = Long.toString(System.nanoTime()) + originalFileExtension;
                    FileDto file = new FileDto();
                    file.setpNo(pNo);
                    file.setFileSize(multipartFile.getSize());
                    file.setOrigin(multipartFile.getOriginalFilename());
                    file.setStoredFilePath(path + "/" + newFileName);
                    fileList.add(file);
                    
                    file1 = new File(path + "/" + newFileName);
                    multipartFile.transferTo(file1);
                }
            }
        }
        return fileList;
    
    }
}

контроллер

@RequestMapping("/viewProductList.pr")
public ModelAndView selectProductList(@RequestParam int cNo) throws Exception{
    
    ModelAndView mv = new ModelAndView("/productCategory");
    
    
    List<ProductDto> list = pService.selectProductList(cNo);
    mv.addObject("list", list);
    
    return mv;
}

изображение не отображается, даже если в консоли есть правильный путь. Я использовал th: src =

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...