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

📄 downloadaction.java

📁 在线考试功能
💻 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 + -