【文件属性】:
文件名称:JSF文件上传
文件大小:61KB
文件格式:DOC
更新时间:2016-03-28 03:19:21
JSF文件上传
依赖的文件:
tomahawk-1.1.3.jar
commons-fileupload-1.2.jar
commons-io-1.3.1.jar
Tomahawk.tld
把这个三个包放在/WEB_INF/lib目录下面。Jsf依赖的包也放在这个目录下面
Tomahawk.tld放在/WEB-INF目录下。Jsf标签也放在这个目录下面。
这个主要讲jsf上传文件,因此只罗列了上传文件用到的包和标签。
Web-xml文件如下:
<?xml version="1.0" encoding="UTF-8"?>
javax.faces.STATE_SAVING_METHOD
client
<!-- Context Listener creates and sets the application handler -->
<!-- Faces Servlet -->
Faces Servlet
javax.faces.webapp.FacesServlet
1
<!-- Faces Servlet Mapping -->
Faces Servlet
*.jsf
ExtensionsFilter
org.apache.myfaces.component.html.util.ExtensionsFilter
uploadMaxFileSize
10m
uploadThresholdSize
100k
ExtensionsFilter
中的一致-->
Faces Servlet
index.html
上传文件的页面如下:
<%@ include file="tags.jsp"%>
其中tags.jsp文件如下:
<%@ page language="java" pageEncoding="GB18030"%>
<%@ page contentType="text/html" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="x"%>
Faces-config.xml文件如下:
myBean
fileupload.MyBean
request
MyBean如下:
package com.dhc;
import java.io.BufferedInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.apache.myfaces.custom.fileupload.UploadedFile;
public class oaMailMainForm {
private UploadedFile myFile;
public UploadedFile getMyFile() {
return myFile;
}
public void setMyFile(UploadedFile myFile) {
this.myFile = myFile;
}
public String uploadedfile() {
System.out.println("Entry");
try {
InputStream in = new BufferedInputStream(myFile.getInputStream());
try {
byte[] buffer = new byte[64 * 1024];
FileOutputStream fileOutputStream = new FileOutputStream(
"C:\\My Files\\tst.jpg");// 这里可以把上传的文件写服务器目录,或者数据库中
while (in.read(buffer) > 0) {
fileOutputStream.write(buffer);
}
} finally {
in.close();
}
System.out.println("End");
return "success";
} catch (Exception x) {
System.out.print("Exception");
FacesMessage message = new FacesMessage(
FacesMessage.SEVERITY_FATAL, x.getClass().getName(), x
.getMessage());
FacesContext.getCurrentInstance().addMessage(null, message);
return null;
}
}
}
参考文献:http://www.blogjava.net/cooky/archive/2007/10/02/150176.html
http://blog.csdn.net/meteorlWJ/archive/2008/01/09/2032505.aspx
http://tml808.javaeye.com/blog/166853