标签可以很方便的实现文件上传的功能。
enctype="multipart/form-data">
property="file"/>
注意以下几点:
必须在标签中
的method属性必须设为"POST" 的编码类型enctype属性必须设为"multipart/form-data"使用struts标记完成web文件上传功能2007-04-26
14:401 文件在客户机上,所以不能使用获得文件路径的方式来获取文件
2 由于使用get方式提交表单时,可提交的串长度受到限制,所以,在上传文件时必须使用post方式
3 上传文件操作所在的表单标记中必须将enctype属性设为multipart/form-data
添加struts组件,配置web.xml文件
然后从页面开始
This a struts page.
enctype="multipart/form-data">
value="submit"/>
传递到Action
package com.lizhe.struts.action;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.upload.FormFile;
import com.lizhe.struts.form.UploadForm;
public class UploadAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm
form,
HttpServletRequest request, HttpServletResponse response) throws
FileNotFoundException, IOException {
UploadForm uploadForm =
(UploadForm) form;// TODO Auto-generated method stub
FormFile
file=uploadForm.getFile();
if(file==null){
return
mapping.findForward("index");
}
String filename =
file.getFileName();
uploadForm.setFilename(filename);
String size =
Integer.toString(file.getFileSize())+"bytes";
uploadForm.setSize(size);
InputStream
is=file.getInputStream();
String path=
servlet.getServletContext().getRealPath("/fileupload");
System.out.println(path);
OutputStream os= new
FileOutputStream(path+"/"+filename);
int bytes=0;
byte[] buffer = new
byte[8192];
while((bytes=is.read(buffer,0,8192))!=-1){
os.write(buffer,0,bytes);
}
os.close();
is.close();
file.destroy();
return
mapping.findForward("index");
}
}
为此Action配置Form
package com.lizhe.struts.form;
import org.apache.struts.action.ActionForm;
import org.apache.struts.upload.FormFile;
public class UploadForm extends ActionForm {
private FormFile file=null;
private String size;
private String filename;
public UploadForm (){
}
public FormFile getFile(){
return file;
}
public void setFile(FormFile file){
this.file=file;
}
public String getSize() {
return size;
}
public void setSize(String size) {
this.size = size;
}
public String getFilename() {
return filename;
}
public void setFilename(String filename) {
this.filename =
filename;
}
}
注意struts配置文件
encoding="UTF-8"?>
/p>
Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
/>
>
type="com.lizhe.struts.form.UploadForm" />
attribute="uploadForm"
input="/index.jsp"
name="uploadForm"
path="/upload"
type="com.lizhe.struts.action.UploadAction"
validate="false">
/>
parameter="com.lizhe.struts.ApplicationResources"
/>