java 基于Struts2的 文件上传跟下载
java 基于Struts2的 文件上传和下载
文件上传:
页面代码:
action中代码:
SaveFileUtils工具类:
文件下载:
前端页面:
<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代码:
struts.xml中配置:
文件上传:
页面代码:
<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>