2014-12-23 6 views
0

Я сохраняю изображения в папке моей системы. Они загружены успешно. и затем я сохраняю имя изображения в базе данных. Теперь для отображения изображения я получаю имя файла, а затем пытаюсь отобразить его, но он не работает. код выглядит следующим образомЗагрузка и отображение изображений в JSF

Для загружение цели

<h:outputLabel value="Select Image"></h:outputLabel> 
    <x:inputFileUpload id="file" 
         value="#{schoolMember.image}" 
         required="true" size="40" /> 
<h:outputText></h:outputText> 

<h:commandButton value="Save Details" 
        action="#{schoolMember.saveMember}"> 
</h:commandButton> 

Метод, используемый в Java Class

public void saveMember() 
    { 
     File savedFileName; 
     String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); 
     String dirPath = "B:\\ImagesUpload\\"; 
     InputStream fileContent = null; 
     try { 
      fileContent = image.getInputStream(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     String uploadFileName = trimFilePath(image.getName()); 
     String nameofFile=timeStamp + uploadFileName; 
     this.setFileName(nameofFile); 
     savedFileName = new File(dirPath +nameofFile); 
     System.out.println(nameofFile); 
     BufferedOutputStream bos = null; 
     try { 
      bos = new BufferedOutputStream(new FileOutputStream(savedFileName)); 
     } catch (FileNotFoundException e) { 
     } 

     byte[] buffer = new byte[1024]; 
     int len; 
     try { 
      while ((len = fileContent.read(buffer)) >= 0) { 
       bos.write(buffer, 0, len); 
      } 
     } catch (IOException e) { 
     } 
     try { 
      fileContent.close(); 
      bos.close(); 
     } catch (IOException e) { 
     } 
     SchoolMemberDao dao=new SchoolMemberDao(); 
     dao.saveSchoolMember(this); 
     this.clearAll(); 

    } 

Это все работает нормально, сейчас я получаю имя файла из базы данных, как показано ниже

public void memberByEmailEdit() throws IOException 
    { 
     String dirPath = "B:\\ImagesUpload\\"; 
     SchoolMemberDao dao=new SchoolMemberDao(); 
     List<SchoolMember> list=dao.memberByEmail(memberEmail); 
     this.memberId=list.get(0).memberId; 

     this.fileName=list.get(0).fileName; 


     String uploadFileName = trimFilePath(list.get(0).fileName); 
     System.out.println(uploadFileName); 
     this.setImageFileName(uploadFileName); 

     ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); 
     ec.redirect(ec.getRequestContextPath() + "/faces/views/SchoolMembers/Principal/editProfile.xhtml"); 

    } 

метод, в котором я получаю эти значения, используя запрос

public List<SchoolMember> memberByEmail(String mEmail) 
    { 
     Transaction trans=null; 
     Session session=HiberUtil.getSessionFactory().openSession(); 
     try{ 
      trans=session.beginTransaction(); 
      String queryString="from SchoolMember s where s.memberEmail = :id and memberType = 'principal'"; 
      Query query=session.createQuery(queryString); 
      query.setString("id", mEmail); 

      List<SchoolMember> list=query.list(); 
      if(list.size()>0) 
      { 
       return list; 
      } 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

Теперь здесь, как указано ниже я даю URL, чтобы получить изображение, но он не показывает, что изображение

<h:graphicImage height="100" 
       width="100" 
       url="B:\\ImagesUpload\\#{schoolMember.imageFileName}"> 
</h:graphicImage> 
+0

Try значение вместо URL – Sarz

+0

Не работает ... ничего –

+0

Что вы имеете в виду его имя файла, не является веб-страницы показать блок изображения не-мишенью Не отображать? – Sarz

ответ

0

Ваш веб-приложение развертывается на сервере. Приложение известно только своим собственным ресурсам. Загрузите изображения в папку веб-приложения вместо B:/ImagesUpload, например: resouces/images/, чем пытаетесь это сделать

Веб-сервер выглядит как файл изображения в формате: http://localhost:8080/B:/UploadedImages/xxx.jpg, конечно же, это невозможно сделать.
Example

+0

Мне нужно снять его с моего приложения. Так что если есть какой-либо другой способ сделать это. Пожалуйста, скажите мне –

+0

Использовать FTP из java, что-то вроде ваша загрузка! – Sarz

+0

Thanx для вашей помощи –