1、java 下載文件時怎麼避免在伺服器上生成文件
在內存里操作 或者下載完後刪掉
2、高分:用java實現伺服器上多個文件先打包,然後下載,下載完成後刪除包!
可以把這些來url,name暫存到session裡面自
下載和上傳可以使用插件jspsmart
很久沒有使用了 稍微看一下API吧jspsmart就是把上傳和下載的工作封裝簡化,所以使用非常簡單的
下載完成後調用file.delete();就在伺服器上刪掉了
3、《急!!!》用java實現FTP伺服器上文件下載,上傳。《急!!!》
package com.icss.oa.impdoc.file.quartz;
import it.sauronsoftware.ftp4j.FTPAbortedException;
import it.sauronsoftware.ftp4j.FTPClient;
import it.sauronsoftware.ftp4j.FTPDataTransferException;
import it.sauronsoftware.ftp4j.FTPException;
import it.sauronsoftware.ftp4j.FTPFile;
import it.sauronsoftware.ftp4j.FTPIllegalReplyException;
import it.sauronsoftware.ftp4j.FTPListParseException;
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.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
/**
 * Ftp客戶端工具,提供ftp上傳、下載、查看文件列表功能
 */
public class FtpClientUtil {
	private FTPClient ftpClient;
	public FtpClientUtil(String host, String user, String password, int port) {
		 = new FTPClient();
		try {
			ftpClient.connect(host, port);
			ftpClient.login(user, password);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FTPIllegalReplyException e) {
			e.printStackTrace();
		} catch (FTPException e) {
			e.printStackTrace();
		}
	}
	public FtpClientUtil() {
		// TODO Auto-generated constructor stub
	}
	/**
	 * 驗證是否登錄成功
	 * 
	 * @return
	 */
	public boolean isAuthenticated() {
		return ftpClient.isAuthenticated();
	}
	/**
	 * 下載文件
	 * @param resFilePath 下載的文件原來所在的路徑
	 * @param targetFilePath 下載的文件准備存放的目的路徑
	 */
	public InputStream download(String resFilePath, File file) {
		InputStream in = null;
		try {
			if(isAuthenticated()){
				ftpClient.setType(FTPClient.TYPE_BINARY);
				ftpClient.download(resFilePath, file);
			}
		} catch (Exception e) {
			System.err.println("從FTP下載文件失敗:" + e.getMessage());
		} finally {
			disconnect();
		}
		try {
			in = new FileInputStream(file);
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
		return in;
	}
	
	/**
	 * 獲取文件列表
	 * path 		代表查詢該路徑下的文件或目錄
	 * @return
	 */
	public FTPFile[] getFileList(String path) {
		FTPFile[] list = null;
		FTPFile[] rtulist = null;		//要返回的文件的列表
		int filenum = 0;				//記錄文件的個數
		try {
			if(isAuthenticated()){
				list = ftpClient.list(path);
				if(list==null || list.length==0)
					return null;
				//首先確定要找的內容的個數
				for(int i=0;i<list.length;i++){
					if(list[i].getType()==0)
						filenum++;
				}
				rtulist = new FTPFile[filenum];
				int j=0;
				for(int i=0;i<list.length;i++){
					if(list[i].getType()==0){
								rtulist[j]=list[i];
								j++;
							}
				}
			}
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FTPIllegalReplyException e) {
			e.printStackTrace();
		} catch (FTPException e) {
			e.printStackTrace();
		} catch (FTPDataTransferException e) {
			e.printStackTrace();
		} catch (FTPAbortedException e) {
			e.printStackTrace();
		} catch (FTPListParseException e) {
			e.printStackTrace();
		}finally{
			disconnect();
		}
		return rtulist;
	}
	/**
	 * 獲取當前文件夾下的文件夾列表
	 * path 		代表查詢該路徑下的文件或目錄
	 * @return
	 */	
	
	public FTPFile[] getDirectoryList(String path) {
		FTPFile[] list = null;
		FTPFile[] rtulist = null;		//要返回的文件夾的列表
		int filenum = 0;				//記錄文件夾的個數
		try {
			if(isAuthenticated()){
				list = ftpClient.list(path);
				if(list==null || list.length==0)
					return new FTPFile[0] ;
				//首先確定要找的內容的個數
				for(int i=0;i<list.length;i++){
					if(list[i].getType()==1)
						if(!".".equals(list[i].getName()))
								if(!"..".equals(list[i].getName()))
								filenum++;
				}
				rtulist = new FTPFile[filenum];
				int j=0;
				for(int i=0;i<list.length;i++){
					if(list[i].getType()==1)
						if(!".".equals(list[i].getName()))
							if(!"..".equals(list[i].getName())){
								rtulist[j]=list[i];
								j++;
							}
				}
			}
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FTPIllegalReplyException e) {
			e.printStackTrace();
		} catch (FTPException e) {
			e.printStackTrace();
		} catch (FTPDataTransferException e) {
			e.printStackTrace();
		} catch (FTPAbortedException e) {
			e.printStackTrace();
		} catch (FTPListParseException e) {
			e.printStackTrace();
		}finally{
			disconnect();
		}
		return rtulist;
	}
	
	public String getCurrentDirectory() {
		try {
			return ftpClient.currentDirectory();
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FTPIllegalReplyException e) {
			e.printStackTrace();
		} catch (FTPException e) {
			e.printStackTrace();
		}
		return null;
	}
	
	public void disconnect(){
		try {
			ftpClient.disconnect(true);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FTPIllegalReplyException e) {
			e.printStackTrace();
		} catch (FTPException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 刪除文件
	 * 
	 * @param fileName
	 */
	public void delete(String fileName) {
		try {
			ftpClient.deleteFile(fileName);
		} catch (IllegalStateException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (FTPIllegalReplyException e) {
			e.printStackTrace();
		} catch (FTPException e) {
			e.printStackTrace();
		} finally {
			disconnect();
		}
	}
	
	public static void main(String[] args) {
		
		DateFormat DATE_FORMAT = new SimpleDateFormat("MM/dd/yy HH:mm");
		System.out.println(DATE_FORMAT.format(new Date()));
		try {
			System.out.println(DATE_FORMAT.parse("09/01/10 03:28 PM"));
		} catch (ParseException e) {
			e.printStackTrace();
		}
		
		FtpClientUtil ftpClientUtil = new FtpClientUtil("127.0.0.1", "verycd", "verycd", 21);
		System.out.println(ftpClientUtil.isAuthenticated());
		System.out.println(ftpClientUtil.getCurrentDirectory());
		System.out.println("文件查詢:");
		System.out.println("=======================================");
		FTPFile[] files = ftpClientUtil.getFileList("/");
		if(files!=null){
			for (int i = 0; i < files.length; i++) {
				FTPFile ftpFile = files[i];
				ftpClientUtil = new FtpClientUtil("127.0.0.1", "verycd", "verycd", 21);
				ftpClientUtil.download("/" + ftpFile.getName(), new File("d:\\catalogRoot\\test.zip"));
				System.out.println(ftpFile.getName() + ":" + ftpFile.getType()+":"+ftpFile.getSize()+":"+ftpFile.getModifiedDate());
			}
		}else{
			System.out.println("該目錄下的文件為空!");
		}
	}
}
4、java 下載伺服器端文件,路徑怎麼寫
如果是在action可以這么寫:HttpServletRequest request = ServletActionContext.getRequest();
  HttpSession session = request.getSession();
ServletContext  application  = session.getServletContext();    
 
String filepath = application.getRealPath("/") +"GameZone\\WebRoot\\exe\\GenXui.exe";
應該是這樣的,你試一下
5、怎樣通過java實現伺服器上文件下載?
用HttpClient(commons httpclient)包,模擬一個Get請求,發送到網址172.16.30.230/文件地址。這個文件地址不能是E/Map/123.txt,必須是暴露在伺服器中的應用里的。就像你寫的應用里的一個jsp頁面的目錄。
成功發送get請求後,就會得到response,裡面有流。就是你下載的文件,然後可以通過FileOutputStream,指定你輸出目錄,寫到磁碟上。
6、java下載伺服器上的文件到客戶端
http://www.360doc.com/content/08/0327/19/3123_1148156.shtml裡面對與資源的路徑獲取提供了解決方案,樓主可以自己去看下,我也是剛回在做文件上傳下答載,發現上傳容易,下載的路徑提供還是有點疑惑,也剛好找了這個網址,希望對樓主能夠有所幫助。
7、java 如何在使用java類 從客戶端下載伺服器上的文件
js 做不到 copy 到客戶端指定位置
如果說的是java的話, 可以做到
import java.io.FileNotFoundException;8、Java編寫程序,用於下載HTTP伺服器上的某個文件
發送http請求,獲得二進制流,然後用outputstream輸出成對應文件格式就行了