簡體   English   中英

使用weblogic的Primefaces fileUpload

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM