📄 downloadaction.java
字号:
package fm.action;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
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 fm.Constants;
import fm.DB;
import fm.UserFile;
/**
*
* @author liuyu
*2007-7-22
*/
public class DownLoadAction extends Action {
/*
* (non-Javadoc)
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public ActionForward execute(ActionMapping map, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub
super.execute( map, form, request, response);
String fileId=request.getParameter("fileId");
ServletContext context = servlet.getServletContext();
String sysroot = context.getInitParameter("sysroot");
String servletContext = servlet.getServletContext().getRealPath("/");
DataSource dataSource = (DataSource) context.getAttribute(Constants.DATASOURCE_KEY);
DB db = new DB(dataSource);
UserFile file=new UserFile();
UserFile file2=new UserFile();
file2= file.searchUserFileByFileId(db, fileId);
if(file2!=null){
String fileName=file2.getFilename();
String fileType=file2.getFileType();
String filePath =file2.getLocation();
response.setHeader("Content-type", fileType);
response.setHeader("content-disposition", "attachment;filename=\"" + new String(fileName.getBytes(), response .getCharacterEncoding()) + "\"");
InputStream is = new FileInputStream(new File(servletContext+"/"+filePath));
OutputStream out = new BufferedOutputStream(response.getOutputStream());
int i;
while ((i = is.read()) != -1) {
out.write(i);
}
out.close();
is.close();
return map.findForward("");
}else{
}
return null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -