Struts2文件上传下载
之前有使用过这方面的东西 所以先记下来以备以后所需吧 相对与表单的上传而言
之前有使用过这方面的东西
所以先记下来以备以后所需吧
相对与表单的上传而言
<form action="#" method="post" enctype="multipart/form-data">
<input name="uploadFile" type="file">
</form>
在file文件上传的时候会传输三个对象在Action中
一个是File对象 例如此例中的uploadFile
另外还有两个String对象
一个是<File>ContentType 内容为文件类型 例如本例子中的uploadFileContentType
一个是<File>FileName 内容为文件名称 例如本例子中的uploadFileFileName
然后以下是上传文件实例代码
String filePath = "/tmp/test";
File savefile = new File(new File(filePath),uploadFileName);
//如果没有文件夹则建立
if (!savefile.getParentFile().exists()){
savefile.getParentFile().mkdirs();
}
FileUtils.copyFile(uploadFile, savefile);
下载文件代码
//僅需在action中添加需要下載的inputStream即可
public InputStream getInputStream() throws Exception {
return new java.io.FileInputStream("/tmp/test");
}
最重要的是struts.xml中的一系列设置
<!-- 允許上傳文件的最大字節數。默認值爲2097152(2M) 設置在package之前 -->
<constant name="struts.multipart.maxSize" value="20971520"/>
<!-- 下載文件方面 在action中return "downloadFile" -->
<result name="downloadFile" type="stream">
<param name="contentType">text/plain</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">attachment;filename="log.txt"</param>
<param name="bufferSize">4096</param>
</result>