好久没写过东西了哦,对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;
? }
}
?
请大家多多指点!