﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-黑咖啡-随笔分类-上传下载</title><link>http://www.blogjava.net/kyleYang/category/43541.html</link><description>孩儿立志出乡关，学不成名誓不还。
风华正茂乾坤地，人生无处不青山。
光阴如同流水去，珍惜时光最宝贵。
鹏程万里靠自己，飞黄腾达青少年。
</description><language>zh-cn</language><lastBuildDate>Sun, 27 Jun 2010 15:13:08 GMT</lastBuildDate><pubDate>Sun, 27 Jun 2010 15:13:08 GMT</pubDate><ttl>60</ttl><item><title>基于Struts1.2的动态多文件上传</title><link>http://www.blogjava.net/kyleYang/archive/2010/06/25/324389.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Fri, 25 Jun 2010 01:26:00 GMT</pubDate><guid>http://www.blogjava.net/kyleYang/archive/2010/06/25/324389.html</guid><wfw:comment>http://www.blogjava.net/kyleYang/comments/324389.html</wfw:comment><comments>http://www.blogjava.net/kyleYang/archive/2010/06/25/324389.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kyleYang/comments/commentRss/324389.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kyleYang/services/trackbacks/324389.html</trackback:ping><description><![CDATA[
		<p>
				<strong>test.jsp</strong>
		</p>
		<p>
				<strong>&lt;!--这段就是网上COPY的动态生成页面--&gt;</strong>
		</p>
		<p>    &lt;%@ page language="java" pageEncoding="utf-8"%&gt;</p>
		<p>    &lt;%@ taglib uri="<a href="http://jakarta.apache.org/struts/tags-bean">http://jakarta.apache.org/struts/tags-bean</a>" prefix="bean" %&gt;<br />    &lt;%@ taglib uri="<a href="http://jakarta.apache.org/struts/tags-html">http://jakarta.apache.org/struts/tags-html</a>" prefix="html" %&gt;<br />    &lt;%@ taglib uri="<a href="http://jakarta.apache.org/struts/tags-logic">http://jakarta.apache.org/struts/tags-logic</a>" prefix="logic" %&gt;<br />    &lt;%@ taglib uri="<a href="http://jakarta.apache.org/struts/tags-tiles">http://jakarta.apache.org/struts/tags-tiles</a>" prefix="tiles" %&gt;</p>
		<p>    &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;<br />    &lt;html:html&gt;<br />    &lt;head&gt;<br />    &lt;title&gt;<br />    multiUploadDemo<br />    &lt;/title&gt;</p>
		<p>    &lt;script language="javascript"&gt;<br />     var num = 0;</p>
		<p>     function upload(){<br />      document.getElementById("status").innerHTML = "文件上传中...";<br />         multiUploadForm.submit();<br />       }</p>
		<p>    function additem(id)<br />    {<br />     var row,cell,str;</p>
		<p>     row = eval("document.all["+'"'+id+'"'+"]").insertRow();<br />     if(row != null )<br />        {<br />           cell = row.insertCell();<br />           str="&lt;input type="+'"'+"file"+'"'+" name=uploadFile["+ num +"].file&gt;&lt;input type="+'"'+"button"+'"'+" value="+'"'+"删除"+'"'+" onclick='deleteitem(this,"+'"'+"tb"+'"'+");'&gt;"<br />          cell.innerHTML=str;<br />        }<br />     num++;<br />    }<br />    function deleteitem(obj,id)<br />    {<br />     var rowNum,curRow;<br />     curRow = obj.parentNode.parentNode;<br />     rowNum = eval("document.all."+id).rows.length - 1;<br />     eval("document.all["+'"'+id+'"'+"]").deleteRow(curRow.rowIndex);<br />    }<br />    function callback(msg)<br />    {<br />     document.getElementById("status").innerHTML = "文件上传完成...&lt;br&gt;" + msg;<br />    }<br />    &lt;/script&gt;<br />    &lt;body bgcolor="#ffffff"&gt;<br />    &lt;div id="status"&gt;&lt;/div&gt;<br />    &lt;html:form method="post" action="/multiUpload.do" enctype="multipart/form-data" target="hidden_frame"&gt;</p>
		<p>    &lt;table id="tb"&gt;<br />    &lt;/table&gt;</p>
		<p>    &lt;/html:form&gt;<br />    &lt;iframe name='hidden_frame' id="hidden_frame" style="display:none"&gt;&lt;/iframe&gt;<br />    &lt;input type="button" name="btnAddFile" value="Add File" onclick="additem('tb')"/&gt;<br />    &lt;input type="button" name="btnUpload" value="upload" onclick="upload()"/&gt;<br />    &lt;/body&gt;<br />    &lt;/html:html&gt;</p>
		<p>
		</p>
		<p>2.form</p>
		<p>
				<strong>我把下面2个文件放在FORM包中</strong>
		</p>
		<p>
		</p>
		<p>    UploadFile .java</p>
		<p>    package com.hb.struts.form;<br />    import java.io.Serializable;</p>
		<p>    import org.apache.struts.upload.FormFile;</p>
		<p>    public class UploadFile implements Serializable {<br />      private FormFile file;<br />         public FormFile getFile() {<br />                 System.out.println("run in uploadFile.getFile()");<br />                 return file;<br />         }<br />         public void setFile(FormFile file) {<br />                 this.file = file;<br />         }<br />    }</p>
		<p>    MultiUploadForm .java</p>
		<p>    package com.hb.struts.form;<br />    import java.util.ArrayList;<br />    import java.util.List;</p>
		<p>    import org.apache.struts.action.ActionForm;</p>
		<p>    import com.hb.struts.UploadFile;</p>
		<p>    public class MultiUploadForm extends ActionForm {<br />     private List myFiles;</p>
		<p>        public MultiUploadForm(){<br />                myFiles = new ArrayList();<br />                myFiles.add(new UploadFile());<br />        }<br />        public List getMyFiles() {<br />                return myFiles;<br />        }</p>
		<p>
				<strong>    //注意这个方法的定义 不加中间的循环是会出错的</strong>
		</p>
		<p>      public UploadFile getUploadFile(int index){<br />                int size = myFiles.size();<br />                if(index&gt;size-1){<br />                 for(int i=0;i&lt;index-size+1;i++){<br />                        myFiles.add(new UploadFile());<br />                 }<br />                }<br />                return (UploadFile)myFiles.get(index);<br />        }<br />        public void setMyFiles(List myFiles) {<br />                this.myFiles = myFiles;<br />        }</p>
		<p>
				<br />    }</p>
		<p>
		</p>
		<p>3.action</p>
		<p>package com.hb.struts.action;</p>
		<p>    import java.io.IOException;<br />    import java.io.PrintWriter;<br />    import java.util.List;</p>
		<p>    import javax.servlet.http.HttpServletRequest;<br />    import javax.servlet.http.HttpServletResponse;</p>
		<p>    import org.apache.struts.action.Action;<br />    import org.apache.struts.action.ActionForm;<br />    import org.apache.struts.action.ActionForward;<br />    import org.apache.struts.action.ActionMapping;<br />    import org.apache.struts.upload.FormFile;</p>
		<p>    public class MultiUploadAction extends Action {<br />     public ActionForward execute(ActionMapping mapping, ActionForm form,<br />       HttpServletRequest request, HttpServletResponse response) {<br />      MultiUploadForm multiUploadForm = (MultiUploadForm) form;</p>
		<p>      List myFiles = multiUploadForm.getMyFiles();<br />      String fileStr = "";<br />      for (int i = 0; i &lt; myFiles.size(); i++) {<br />       UploadFile uploadFile = (UploadFile) myFiles.get(i);<br />       FormFile file = uploadFile.getFile();</p>
		<p>       if (file == null) {<br />        System.out.println("file is null");<br />       } else {</p>
		<p>        // 能运行到这里，就可以使用单个文件上传的方法进行上传了。循环而已<br />        System.out.println("filename&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;" + file.getFileName());<br />        System.out.println("file size&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;" + file.getFileSize());<br />        fileStr += "filename:::" + file.getFileName() + "file size:::"<br />          + file.getFileSize();</p>
		<p>       }<br />      }<br /><strong>      // 返回文本</strong><br />      try {<br />       response.setHeader("ContentType", "text/html;charset=gbk");<br />       PrintWriter out = response.getWriter();<br />       out.write("&lt;script&gt;parent.callback('upload file success" + fileStr<br />         + "')&lt;/script&gt;");<br />      } catch (IOException e) {<br />       e.printStackTrace();<br />      }</p>
		<p>      return null;<br />     }</p>
		<p>    }<br />转自：<a href="http://hi.baidu.com/yanglu_168/blog/item/12c1382a4bc35028d42af1bd.html">http://hi.baidu.com/yanglu_168/blog/item/12c1382a4bc35028d42af1bd.html</a></p>
<img src ="http://www.blogjava.net/kyleYang/aggbug/324389.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kyleYang/" target="_blank">飞熊</a> 2010-06-25 09:26 <a href="http://www.blogjava.net/kyleYang/archive/2010/06/25/324389.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>文件下载</title><link>http://www.blogjava.net/kyleYang/archive/2010/01/12/309161.html</link><dc:creator>飞熊</dc:creator><author>飞熊</author><pubDate>Tue, 12 Jan 2010 08:11:00 GMT</pubDate><guid>http://www.blogjava.net/kyleYang/archive/2010/01/12/309161.html</guid><wfw:comment>http://www.blogjava.net/kyleYang/comments/309161.html</wfw:comment><comments>http://www.blogjava.net/kyleYang/archive/2010/01/12/309161.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kyleYang/comments/commentRss/309161.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kyleYang/services/trackbacks/309161.html</trackback:ping><description><![CDATA[
		<p>文件下载：<br />public ActionForward execute(ActionMapping mapping, ActionForm form,<br />   HttpServletRequest request, HttpServletResponse response)<br />   throws Exception {<br />  <br />  String inPutFileName = "附件2-2010年探亲路途费报销申请表.xls";<br />        response.reset();<br />        response.setContentType("application/vnd.ms-excel;charset=GBK");<br />        response.setHeader("Content-Disposition", "attachment;filename=" + new String(inPutFileName.getBytes("gb2312"),"ISO8859-1"));<br />        <br />        System.out.println("下载文件的路径：" + request.getRealPath(inPutFileName));</p>
		<p>        //System.out.println(CustgradeinputDownLoadAction.class.getClassLoader().getResource(""));<br />        //打开指定文件的流信息<br />       // InputStream is = new FileInputStream(request.getContextPath() + "/" +inPutFileName);<br />        InputStream is = new FileInputStream(request.getRealPath(inPutFileName));<br />        //写出流信息</p>
		<p>        int data = -1;<br />        OutputStream outputstream = response.getOutputStream();</p>
		<p>        while ( (data = is.read()) != -1)<br />         outputstream.write(data);</p>
		<p>        outputstream.flush();<br />        outputstream.close();<br />        is.close();<br />        <br />        return null;<br /> }</p>
<img src ="http://www.blogjava.net/kyleYang/aggbug/309161.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kyleYang/" target="_blank">飞熊</a> 2010-01-12 16:11 <a href="http://www.blogjava.net/kyleYang/archive/2010/01/12/309161.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>