struts1.2 <htm:file>标签应用
[size=medium]1)首先创建个JavaWeb项目FileTag
2)然后添加Struts框架
3)创建file.jsp页面,注意在应用的模板中选择:Standard JSP using Struts 1.2/1.3
4)在file.jsp页面的BODY部分添加以下代码:(看源代码file.jsp红色字体)
Html代码
<html:form action="file_tag" method="post" enctype="multipart/form-data"> upload<html:file property="file"><br> </html:file> <html:submit value="submit"/> </html:form> you upload file:<bean:write name="file_tagForm" property="filename"/><br> size:<bean:write name="file_tagForm" property="size"/>
private FormFile file;//定义从Form表单获得的文件 private String filename; private String size;
String dir=servlet.getServletContext().getRealPath("/upload");//获得upload文件夹的路径 FileForm fileForm=new FileForm(); FormFile f=fileForm.getFile(); String fname=f.getFileName();//获得文件名 String size=Integer.toString(f.getFileSize())+"bytes";//获得文件大小 try { InputStream in=f.getInputStream();//获得文件流 OutputStream out=new FileOutputStream(dir+"/"+fname);//定义输出流,指定存放的位置及文件名 int bytesRead=0; byte[] buffer=new byte[8192]; while((bytesRead=in.read(buffer,0,8192))!=-1){//in.read(buffer,0,8192)返回一个数值,把数据流读到buffer中,若-1数据流读取完毕 out.write(buffer, 0, bytesRead);//读出输入流到out } //关闭输入,输出流 out.close(); in.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } fileForm.setFilename(fname); fileForm.setSize(size); return mapping.getInputForward();