⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 downloadaction.java

📁 bbs论坛系统
💻 JAVA
字号:
package struts.action;

import java.io.*;
import java.net.URLEncoder;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import struts.business.FileManager;

public class DownloadAction extends Action {
	
	 public ActionForward execute(ActionMapping mapping, ActionForm form,
			   HttpServletRequest request, HttpServletResponse response)  throws Exception{
		 
		 FileManager fm=new FileManager();
		 BufferedInputStream bis = null;
	     BufferedOutputStream bos = null;
	     OutputStream fos = null;
	     InputStream fis = null;
	     
		 String fileid=request.getParameter("fileid");
		 
		 
		 String url=fm.filepath(fileid);
		 File uploadFile = new File(url);
	     fis = new FileInputStream(uploadFile);
	     bis = new BufferedInputStream(fis);
	     fos = response.getOutputStream();//从内置对象response中得到输出流
	     bos = new BufferedOutputStream(fos); 
	     response.setHeader("Content-disposition","attachment;filename=" 
	    		 +URLEncoder.encode(url, "utf-8"));  //设置对话框标题等
	     int bytesRead = 0;
	        //用输入流进行先读,然后用输出流去写,唯一不同的是用的是缓冲输入输出流
	        byte[] buffer = new byte[8192];
	        while ((bytesRead=bis.read(buffer, 0, 8192)) != -1) 
	        {
	            bos.write(buffer, 0, bytesRead);
	        }
	        int add=fm.addtimes(fileid);
	        if(add==0)
	        {
	        	return new ActionForward("addtimes_error.jsp");
	        }
	        bos.flush();
	        fis.close();
	        bis.close();
	        fos.close();
	        bos.close();
	        return null;
		 
	 }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -