新浪博客

<html:file>标签的用法

2009-08-27 16:34阅读:
<html:file>标签可以很方便的实现文件上传的功能。
<html:form action='file.do' method='POST' enctype='multipart/form-data'>
<html:file property='file'/><html:submit/>
</html:form>
注意以下几点:
<html:file>必须在<html:form>标签中
<html:form>的method属性必须设为'POST'
<html:form>的编码类型enctype属性必须设为'multipart/form-data'


使用struts<html:file>标记完成web文件上传功能2007-04-26 14:401 文件在客户机上,所以不能使用获得文件路径的方式来获取文件
2 由于使用get方式提交表单时,可提交的串长度受到限制,所以,在上传文件时必须使用post方式
3 上传文件操作所在的表单标记中必须将enctype属性设为multipart/form-data
添加struts组件,配置web.xml文件
然后从页面开始
<body>
This a struts page. <br>
<html:form action='/upload.do' enctype='multipart/form-data'>
<html:file property='file'/>
<html:submit property='submit' value='submit'/>
</html:form>
</body>
传递到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配置文件
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE struts-config PUBLIC '-//Apache Software Foundation//DTD Struts Configuration 1.1//EN' 'http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd'>
<struts-config>
<data-sources />
<form-beans >
<form-bean name='uploadForm' type='com.lizhe.struts.form.UploadForm' />
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute='uploadForm'
input='/index.jsp'
name='uploadForm'
path='/upload'
type='com.lizhe.struts.action.UploadAction'
validate='false'>
<forward name='index' path='/index.jsp' />
</action>
</action-mappings>
<message-resources parameter='com.lizhe.struts.ApplicationResources' />
</struts-config>


我的更多文章

下载客户端阅读体验更佳

APP专享