`

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

阅读更多
文件上传:
页面代码:
<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>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics