📄 downloadaction.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 + -