附件上传、下载

 

附件下载
Action
  private  String fileName;
   private InputStream downloadFile;
  private final String downloadPath="/knowledgeFiles/";

 /***********************************附件操作***************************************/
  /**
   * 下载附件
   */
   
 public String download()throws Exception{
	 init();
	 fileName=URLDecoder.decode(bo.getFileName(),"utf-8");
          //获取路径 并转为流 关键的一句
	 downloadFile=ServletActionContext.getServletContext().getResourceAsStream(downloadPath+fileName); 
         fileName=new String(fileName.split("_")[1].trim().getBytes(),"ISO8859-1");
	 return "download";
 }
 
struts配置
<action name="download" class="com.hxhk.cc.action.tss.kw.knowledge.DownLoadAction"> 
<result name="download" type="stream">
	<param name="contentType">application/octet-stream</param>
		<!-- excelStream 与对应action中的输入流的名字要一致 -->
	<param name="inputName"> downloadFile</param>
		<!-- 文件名 与action中fileName一致 -->
	<param name="contentDisposition">attachment;filename=" ${fileName}"</param>
</result>
</action>
jsp页面 请求  location方式 
<script type="text/javascript">
    	//下载附件 
    	function downloadAttach(obj,obj1){	
		location = "KwCodeKnowledgeClasInfo!download.action?bo.fileName="
				+encodeUR(encodeURI(obj1));
    	}
 </script> 
要注意的是如果请求中有中文字符,若有乱码 可以用 encodeURI(encodeURI())进行处理 后台接收到 用
         URLDecoder.decode(bo.getFileName(),"utf-8"); 处理, 请求方式不同 可以根据自己的情况而定
 
 
文件上传
private void upLoad() {
	if (bo.getUploadFile() != null) {
		System.out.println("文件开始上传");
		String directory = "/knowledgeFiles";
		String targetDirectory = ServletActionContext.getServletContext()
										.getRealPath(directory);
		// 生成上传的文件对象
		try {
			for (int i = 0; i < bo.getUploadFile().length; i++) {
				String dbFileNameString = UUID.randomUUID().toString()
							+ "_" + bo.getUploadFileFileName()[i];
				File target = new File(targetDirectory, dbFileNameString);
				// 如果文件已经存在,则删除原有文件
				if (target.exists()) {
					target.delete();
					}
				// 复制file对象,实现上传
				FileUtils.copyFile(bo.getUploadFile()[i], target);
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
			System.out.println("文件上传成功");
		}
	}
主要步骤为 获取路径--->生成文件----->判断是否存在:若存在,删除原有文件(也可进行其他操作),不存在,复制file   对象 实现上传
 
另外文件上传时 jsp页面
<s:form id="addForm"
			action="KwCodeKnowledgeClasInfo!addBaseInfo" method="post" enctype="multipart/form-data" theme="simple">
form 表单中 要加入这个。
 
 
                                                                                                                                                                                                                                     ---如有错误,希望大家帮忙指出

 


 
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值