📄 downloadaction.java
字号:
/*
* Generated by MyEclipse Struts
* Template path: templates/java/JavaClass.vtl
*/
package com.onlinestudy.action;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import com.jspsmart.upload.File;
import com.jspsmart.upload.Files;
import com.jspsmart.upload.Request;
import com.jspsmart.upload.SmartUpload;
import com.onlinestudy.domain.Download;
import com.onlinestudy.domain.DownloadClasses;
import com.onlinestudy.service.DealFile;
import com.onlinestudy.service.UploadService;
public class DownloadAction extends DispatchAction {
UploadService uplService;
//显示下载主页面
public ActionForward showIndex(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List latest = uplService.selectFilesForPage("from Download where ispass='是' order by uploadDate desc", 0, 10);
List hot = uplService.selectFilesForPage("from Download where ispass='是' order by downloadCount desc", 0, 10);
List classlist = uplService.selectClasses();
for(int i = 0; i<classlist.size(); i++){
// if(i>max) break;
int id = ((DownloadClasses)classlist.get(i)).getId();
List list = uplService.selectFilesForPage("from Download as d where d.ispass='是' and d.dlClasses.id="+id+"order by uploadDate desc", 0, 10);
request.setAttribute("list"+i, list);
}
request.setAttribute("classlist", classlist);
request.setAttribute("latest", latest);
request.setAttribute("hot", hot);
ActionForward forward= new ActionForward("downloadView");
return forward;
}
//显示分类下载页面
public ActionForward downloadForPage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
//按类查找
//按类查找
int id =Integer.parseInt(request.getParameter("id")) ;
DownloadClasses downloadClass = uplService.selectClassesById(id);
int currentPage = 1;
currentPage = Integer.parseInt(request.getParameter("nextpage"));
int totalDownload = downloadClass.getDwld().size();
int length = 20; //读取数据记录数
String hql = "from Download as d where d.dlClasses.id="+id+" order by uploadDate desc";
int totalPages = (totalDownload-1)/length+1;
if(currentPage < 1){
currentPage = 1;
}
if(currentPage > totalPages){
currentPage = totalPages;
}
int offset = (currentPage-1)*length; //开始取数据的下标
List list = uplService.selectFilesForPage(hql, offset, length);
List classlist = uplService.selectClasses();
request.setAttribute("totalDownload", totalDownload);
request.setAttribute("totalPages", Integer.toString(totalPages));
request.setAttribute("currentPage", Integer.toString(currentPage));
request.setAttribute("list", list);
request.setAttribute("downloadClass",downloadClass );
request.setAttribute("classlist", classlist);
ActionForward forward= new ActionForward("downloadForPageView");
return forward;
}
//显示下载内容
public ActionForward downloadContent(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
int id =Integer.parseInt(request.getParameter("id")) ;
List classlist = uplService.selectClasses();
Download dl = uplService.selectFilesByid(id);
request.setAttribute("dl",dl);
request.setAttribute("classlist", classlist);
ActionForward forward= new ActionForward("downloadContentView");
return forward;
}
//显示下载内容
public ActionForward download(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
int id =Integer.parseInt(request.getParameter("id")) ;
Download files = uplService.selectFilesByid(id);
String url = files.getUrl();
int count = files.getDownloadCount();
SmartUpload su = new SmartUpload();
su.initialize(this.getServlet().getServletConfig(), request, response);
su.setContentDisposition(null);
String path = this.getServlet().getServletContext().getRealPath("/");
su.downloadFile(path+url);
count = count+1;
files.setDownloadCount(count);
uplService.uploadFiles(files);
return null;
}
//显示上传页面
public ActionForward uploadPage(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
List list = uplService.selectClasses();
request.setAttribute("list", list);
ActionForward forward= new ActionForward("uploadView");
return forward;
}
//学生上传文件动作
public ActionForward upload(ActionMapping mapping, ActionForm form,
HttpServletRequest request1, HttpServletResponse response) throws Exception {
Download download = new Download();
SmartUpload su = new SmartUpload();
su.initialize(this.getServlet().getServletConfig(),request1, response);
Request request = su.getRequest();
try {
// su.setAllowedFilesList("txt,rar,doc,ppt,pdf,jpg");//设置允许上传的文件类型
su.setDeniedFilesList("exe"); //设置不允许上传的文件
su.upload();
System.out.println("3333333");
Files files = su.getFiles();
int count = files.getCount();
//System.out.println("共上传文件数量为:"+count);
for(int i = 0; i< count; i++){
File f = files.getFile(i);
//判断文件是否丢失
if(!f.isMissing()){
//f.saveAs("c:/"+f.getFileName(), File.SAVEAS_PHYSICAL);//存到物理磁盘上
int r = new Random().nextInt();
String rs = Integer.toString(r);
String path = "\\upload\\"+rs+f.getFileName();
System.out.println(path);
f.saveAs(path, File.SAVEAS_VIRTUAL);//存到虚拟路径上
download.setUrl(path);
download.setSize(f.getSize()/1024);
}
}
System.out.println("上传成功!");
int dlClasses = Integer.parseInt(request.getParameter("classes"));
DownloadClasses dlc = uplService.selectClassesById(dlClasses);
String name = request.getParameter("name").trim();
System.out.print(request.getParameter("name"));
String uploadAuthor = request.getParameter("uploadAuthor").trim();
String info = request.getParameter("content").trim();
System.out.println(name+" "+uploadAuthor+" "+info);
download.setDlClasses(dlc);
download.setName(name);
download.setUploadAuthor(uploadAuthor);
download.setInfo(info);
download.setDownloadCount(0);
download.setIspass("是");
download.setUploadDate(new java.util.Date());
uplService.addUpload(download);
} catch (Exception e) {
// TODO 自动生成 catch 块
System.out.println("上传失败,上传文件不被允许");
return null;
}
List list = uplService.selectClasses();
request1.setAttribute("list", list);
ActionForward forward= new ActionForward("uploadView");
return forward;
}
public void setUplService(UploadService uplService) {
this.uplService = uplService;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -