JSF 文件上传

好久没写过东西了哦,对JSF文件上传,做了一个例子请大家看看!

 

后台实现类:

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.faces.context.FacesContext;

import org.apache.myfaces.custom.fileupload.UploadedFile;


public class Fileupload
{
    private UploadedFile _upFile;
    private String _name = "";

   public UploadedFile getUpFile()
    {
        return _upFile;
    }

 

public void setUpFile(UploadedFile upFile)   
    {
        _upFile = upFile;
    }

    public String getName()
    {
        return _name;
    }

    public void setName(String name)
    {
        _name = name;
    }

    public String upload() throws IOException
    {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        int start=_upFile.getName().lastIndexOf("\\")==-1?_upFile.getName().lastIndexOf("\\"):_upFile.getName().lastIndexOf("\\")+1;
        String file=_upFile.getName().substring(start,_upFile.getName().length());
        String path=Fileupload.class.getResource("/").getPath().substring(1,Fileupload.class.getResource("/").getPath().length());
        path=path.replace("%20", " ")+file;
  try {
   FileOutputStream keyFOS = new FileOutputStream(path);
   keyFOS.write(_upFile.getBytes());
   keyFOS.close();
  } catch (Exception e) {
   System.out.println("lalala");
  }
  
        facesContext.getExternalContext().getApplicationMap().put("fileupload_bytes", _upFile.getBytes());
        facesContext.getExternalContext().getApplicationMap().put("fileupload_type", _upFile.getContentType());
        facesContext.getExternalContext().getApplicationMap().put("fileupload_name", _upFile.getName());
        return path;
    }

public boolean isUploaded()
    {
        FacesContext facesContext = FacesContext.getCurrentInstance();
        return facesContext.getExternalContext().getApplicationMap().get("fileupload_bytes")!=null;
    }
}

 

前台实现:Myfaces

<t:inputFileUpload id="fileupload"
                               value="#{action$fixing.myFile}"        
                               storage="file"
                               styleClass="fileUploadInput"
                               maxlength="200000"/>
      <h:commandButton value="#{prompt['Submit']}"
       action="#{action$fixing.sel}" />

 

后台管理Bean:

import org.apache.myfaces.custom.fileupload.UploadedFile;

 

public class FixingAction{

private UploadedFile myFile;

 

public UploadedFile getMyFile() {
  return myFile;
 }

 

 

public void setMyFile(UploadedFile myFile) {
  this.myFile = myFile;
 }


    public String sel(){
       Fileupload file=new Fileupload();

String path=file.setUpFile(this.myFile);

System.out.println("文件存放路径:"+path);

return null;

  }
}

 

请大家多多指点!

你可能感兴趣的:(apache,bean,JSF)