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

📄 downoruploadaction.java

📁 jsp学习交流网
💻 JAVA
字号:
package cfq.struts.action;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

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.actions.DispatchAction;
import org.apache.struts.upload.FormFile;

import cfq.business.dao.ResourceDao;
import cfq.business.dao.UserDao;
import cfq.struts.actionform.UploadForm;

public class DownOrUpLoadAction extends DispatchAction {
	
	UserDao user;
	ResourceDao res;

	//用户上传文件
	public ActionForward userUpLoad(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		UploadForm uf=(UploadForm)form;
		String fname=uf.getFile().getFileName();
		try {
			OutputStream out = new FileOutputStream("C:\\upload\\"+fname) ;
			FormFile ff = uf.getFile();
			byte b[] = ff.getFileData() ;
			out.write(b) ;
			String result=user.addUserUpLoad(uf);     //把文件相关信息保存在数据库中

			out.close() ;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return mapping.findForward("upload_success");
	}
	
	
	//用户下载
	public ActionForward downLoad(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {

			String strName=request.getParameter("resname");
			String resName="c:\\upload\\"+strName;
    	    resName=new String(resName.getBytes("ISO-8859-1"),"GBK");
    	    File file=new File(resName);
            String fileName=file.getName();
            InputStream is=new FileInputStream(file);
            OutputStream os=response.getOutputStream();
            BufferedInputStream bis = new BufferedInputStream(is);
            BufferedOutputStream bos = new BufferedOutputStream(os);
            
            fileName = java.net.URLEncoder.encode(fileName, "UTF-8");// 处理中文文件名的问题
            fileName = new String(fileName.getBytes("UTF-8"), "GBK");// 处理中文文件名的问题
            response.reset();
            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/x-msdownload");// 不同类型的文件对应不同的MIME类型
            response.setHeader("Content-Disposition", "attachment; filename="+fileName);
            int bytesRead = 0;
            byte[] buffer = new byte[1024];
            while ((bytesRead = bis.read(buffer)) != -1){
                bos.write(buffer, 0, bytesRead);// 将文件发送到客户端
              
            }
          String strResult=res.modifyCount(Integer.valueOf(request.getParameter("resid")));    //下载完以后使下载次数加一
System.out.println(strResult);
            bos.flush();
            bis.close();
            bos.close();
    
		return null;
	}

	public void setUser(UserDao user) {
		this.user = user;
	}


	public void setRes(ResourceDao res) {
		this.res = res;
	}
	
	/*public ActionForward downLoad(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		// TODO Auto-generated method stub
		return super.execute(mapping, form, request, response);
	}*/


}

⌨️ 快捷键说明

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