zoukankan      html  css  js  c++  java
  • java_method_UpDownUtils下载Excle表格

    package cn.com.qmhd.tools;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import cn.com.qmhd.tools.Log;
    
    import com.oreilly.servlet.multipart.FilePart;
    import com.oreilly.servlet.multipart.MultipartParser;
    import com.oreilly.servlet.multipart.ParamPart;
    import com.oreilly.servlet.multipart.Part;
    
    public class UpDownUtils{
    
    	public boolean download(HttpServletRequest request,
    			HttpServletResponse response, String filePath, String strFileName,
    			String strType) {
    		try {
    			File f = new File(filePath);
    
    			response.reset(); 
    			response.setContentType( strType );//设置下载文件的类型 
    			response.setHeader("content-disposition","attachment; filename="+strFileName); //设置下载的文件名 
    
    			long fileLength=f.length(); 
    			String length1=String.valueOf(fileLength); 
    			response.setHeader("Content_Length",length1); //下载文件的大小 
    
    			InputStream in = new FileInputStream( f ); 
    			OutputStream out = response.getOutputStream(); 
    			byte[] buffer = new byte[2097152]; 
    			 
    			int ins = in.read(buffer);//读取字节到buffer中 
    
    			//ins == -1 时 。就已经是文件的结尾了 
    			while ( ins != -1 ) {
    			    out.write(buffer, 0, ins);//将缓存buffer中的数据写到文件中 
    			    ins = in.read(buffer); 
    			} 
    			in.close(); 
    			out.flush(); 
    			out.close();
    			return true;
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			return false;
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    			return false;
    		}
    		
    	}
    
    	public String upload(HttpServletRequest request, String strFileName , int fileSize) {
    		
    		try {
    			
    			MultipartParser mp = new MultipartParser(request,fileSize * 1024 * 1024);
    
    			//所有表单域都是Part实例 
    
    			Part part; 
    
    			//遍历请求中的所有表单域 
    
    			while((part = mp.readNextPart()) != null ){ 
    
    				//取得表单域的name属性值 
    				String name = part.getName(); 
    
    				//对于普通表单域 
    
    				if(part.isParam()){ 
    
    				//取得普通表单域的值 
    
    					ParamPart paramPart = (ParamPart) part; 
    			
    					String value = paramPart.getStringValue("GBK"); 
    			
    					//System.out.println("Some common form fields:<br>name=" + name + ";value=" + value + "<br>"); 
    			
    				}
    
    				//对于文件域 
    
    				else if(part.isFile()){
    
    					//获取文件上传域 
    			
    					FilePart filePart = (FilePart) part; 
    					
    					//System.out.println( filePart.getFileName() );
    			
    					//fileName = filePart.getFileName(); 
    			
    					if(strFileName != null){ 
    			
    					//输出文件内容 
    			
    						long size = filePart.writeTo(new File(request.getRealPath("/")+"upload/"+strFileName)); 
    			
    						//System.out.println("Upfile:<br>File name field=" + name + ";fileName=" + strFileName + "<br>"); 
    			
    					}else{ 
    			
    					//文件名为空 
    			
    						return "error";
    					} 
    			
    					System.out.flush(); 
    			
    				}
    
    			}
    
    			return strFileName;
    		} catch (Exception e) {
    			Log.getInstance().printError(this.getClass().getName(), e.toString());
    			e.printStackTrace();
    			return "error";
    		} 
    		
    	}
    
    }
    

      

  • 相关阅读:
    ADB命令大全
    Backup your Android without root or custom recovery -- adb backup
    Content portal for Pocketables Tasker articles
    Is there a way to detect if call is in progress? Phone Event
    Tasker to proximity screen off
    Tasker to detect application running in background
    Tasker to create toggle widget for ES ftp service -- Send Intent
    Tasker to proximity screen on
    Tasker to answer incoming call by pressing power button
    Tasker to stop Poweramp control for the headset while there is an incoming SMS
  • 原文地址:https://www.cnblogs.com/zxxbk/p/6265226.html
Copyright © 2011-2022 走看看