日期:2014-05-16  浏览次数:20434 次

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;

? }
}

?

请大家多多指点!