java 基于Struts2的 文件上传和下载_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java 基于Struts2的 文件上传和下载

java 基于Struts2的 文件上传和下载

 2014/4/4 3:21:54  LieutenantGeneral  程序员俱乐部  我要评论(0)
  • 摘要:文件上传:页面代码:<formaction=''method='post'><td><inputtype="file"name="myFile"/></td><td><inputtype="submit"value="提交"/></td></form>action中代码:StringuploadPath=ServletActionContext.getServletContext()
  • 标签:上传 文件 Java 下载 struts
文件上传:
页面代码:
class="java">
<form action=''method='post'>
<td><input type="file" name="myFile"/></td>
<td><input type="submit" value="提交"/></td>
</form>

action中代码:
String uploadPath =ServletActionContext.getServletContext().getRealPath("/reviseUpload")+ "\\" + this.getMyFileFileName(); 
		File toFile =new File(uploadPath);
	    if(!toFile.exists()){
	    	toFile.createNewFile();
	    }
	    SaveFileUtils.copyFile(getMyFile(), toFile);

SaveFileUtils工具类:
public class SaveFileUtils {
	public static void copyFile(File src,File dst){
		InputStream inputStream=null;
		OutputStream outputStream=null;
		try {
			inputStream=new FileInputStream(src);
			outputStream = new FileOutputStream(dst);
			byte[] buffer = new byte[1024]; 
			int length = 0; 
			while ((length = inputStream.read(buffer)) > 0) {  
				outputStream.write(buffer, 0, length);  
		        }  
			outputStream.flush();
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			try {
				inputStream.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
			try {
				outputStream.close();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		}
	}

文件下载:
前端页面:
<s:iterator value="#articleMap" var="article" status="a">
            <form action="<%=path%>/info/download" method="post">
           <tr>
            <td>
             <input type="hidden" name="fileName" value="<s:property value="value"/>"/>
             <s:property value="key"/>
            </td>
            <td>
              <input type="submit" value="审查">
            </td>
           </tr>
             </form>
           </s:iterator>
action代码:
private String fileName;
	public String getFileName() {
		return fileName;
	}
	public void setFileName(String fileName) {
		this.fileName = fileName;
	}
	public InputStream getInputStream() {
        try {
			return new FileInputStream(fileName);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			throw new RuntimeException(e);
		}
    }
	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}


struts.xml中配置:
<action name="download" class="cn.com.RJ.ation.downloadAction">
	 <result type="stream">
	  <param name="contentType">application/octet-stream</param>
      <param name="inputName">inputStream</param>
      <param name="contentDisposition">attachment;filename="${fileName}"</param>
      <param name="bufferSize">4096</param>
	 </result>
	</action>
发表评论
用户名: 匿名