日期:2014-05-18  浏览次数:20648 次

关于struts的<html:file>的详细用法。
有谁能详细解释一下struts的 <html:file> 标签的用法,主要讲一下每个参数的设置。最好带个简单明了的例子。顺便讲解一下 <input   type= "file "/> 的参数设置方法。最好全一点。

------解决方案--------------------
调用FormFile
------解决方案--------------------
选择上传文件页面:selfile.jsp


--------------------------------------------
<%@ taglib uri= "/WEB-INF/struts-html.tld " prefix= "html "%>
<html:html>
<html:form action= "/uploadsAction.do " enctype= "multipart/form-data ">
<html:file property= "theFile "/>
<html:submit/>
</html:form>
</html:html>

--------------------------------------------
UpLoadAction.java
--------------------------------------------
import java.io.*;
import javax.servlet.http.*;
import org.apache.struts.action.*;
import org.apache.struts.upload.FormFile;

/**
* <p> Title:UpLoadAction </p>
* <p> Description: QRRSMMS </p>
* <p> Copyright: Copyright (c) 2004 jiahansoft </p>
* <p> Company: jiahansoft </p>
* @author wanghw
* @version 1.0
*/

public class UpLoadAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
if (form instanceof uploadsForm) {//如果form是uploadsForm
String encoding = request.getCharacterEncoding();
if ((encoding != null) && (encoding.equalsIgnoreCase( "utf-8 ")))
{
response.setContentType( "text/html; charset=gb2312 ");//如果没有指定编码,编码格式为gb2312
}
UpLoadForm theForm = (UpLoadForm ) form;
FormFile file = theForm.getTheFile();//取得上传的文件
try {
InputStream stream = file.getInputStream();//把文件读入
String filePath = request.getRealPath( "/ ");//取当前系统路径
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(filePath + "/ " +
file.getFileName());//建立一个上传文件的输出流
//System.out.println(filePath+ "/ "+file.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead);//将文件写入服务器
}
bos.close();
stream.close();
}catch(Exception e){
System.err.print(e);
}
//request.setAttribute( "dat ",file.getFileName());
return mapping.findForward( "display ");
}
return null;
}
}


--------------------------------------------

UpLoadForm.java

--------------------------------------------


import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.*;
import org.apache.struts.upload.*;

/**
* <p> Title:UpLoadForm </p>
* <p> Description: QRRSMMS </p>
* <p> Copyright: Copyright (c) 2004 jiahansoft </p>
* <p> Company: jiahansoft </p>