[英]Primefaces fileUpload using weblogic
我正在Tomcat服務器上使用fileUpload組件,它確實可以正常工作。 當我在weblogic服務器上嘗試我的應用程序時,文件上傳組件不起作用。
<h:form id="fileUpoad" prependId="false" enctype="multipart/form-data">
<!-- File Upload with mode="advanced". multiple files can be uploaded. upload button -->
<h:outputLabel for="fileIdPhoto" value="Hasar fotografini yukleyiniz:"/>
<p:fileUpload id="fileIdPhoto" fileUploadListener="#{fileUploadBean.uploadPhoto}" mode="advanced"
dragDropSupport="false"
multiple="true" update="messages" sizeLimit="10000000" fileLimit="3"
allowTypes="/(\.|\/)(gif|jpe?g|zip)$/"/>
<p:messages id="messages" autoUpdate="true" closable="true"/>
</h:form>
這是我的fileUpload
bean:
@ManagedBean(name = "fileUploadBean")
@RequestScoped
public class fileUpload {
FileUploadEvent e;
private static final long serialVersionUID = 1L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String uploadPhoto() throws IOException {
System.out.println("resim kaydetme metoduna girildi");
UploadedFile uploadedPhoto = e.getFile();
String filePath = "c:/temp/kk";
byte[] bytes = null;
if (null != uploadedPhoto) {
bytes = uploadedPhoto.getContents();
String filename = FilenameUtils.getName(uploadedPhoto.getFileName());
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File(filePath + filename)));
stream.write(bytes);
stream.close();
}
System.out.println("resim kaydettim cikiyorum");
FacesContext.getCurrentInstance().addMessage("messages", new FacesMessage(FacesMessage.SEVERITY_INFO, "(File Name " + uploadedPhoto.getFileName() + " with size " + uploadedPhoto.getSize() + ") Basarili bir sekilde kaydedildi", ""));
return null;
}
}
當我單擊“上傳”時,我的圖像沒有保存。 這是我的weblogic服務器錯誤:
2016年10月31日,上午7:54:49 com.sun.faces.context.ExternalContextImpl getMimeType警告:JSF1091:找不到文件/denemexhtml.xhtml的mime類型。 要解決此問題,請將mime類型的映射添加到應用程序web.xml。 2016年10月31日,上午7:54:49 com.sun.faces.context.ExternalContextImpl getMimeType警告:JSF1091:找不到文件/denemexhtml.xhtml的mime類型。 要解決此問題,請將mime類型的映射添加到應用程序web.xml。
為什么要在uploadPhoto方法中返回字符串?
我猜沒有找到uploadPhoto方法? FileUploadEvent不應是全局變量,應該將其提供給您的方法(我想這是導致錯誤的原因):
public String uploadPhoto(FileUploadEvent e)
或更好,正如我在沒有String的情況下所說:
public void uploadPhoto(FileUploadEvent e)
也要注意自己的道路。 Windows路徑很可能在您的服務器上不起作用。 在嘗試寫入文件之前,也不要通過file.mkdirs()創建目錄,因此,如果目錄不存在,也會出現錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.