导航:首页 > IDC知识 > java文件下载服务器

java文件下载服务器

发布时间:2021-03-15 10:55:38

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;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/*
 * 文 件 名:  Test.java
 * 版    权:  XX Technologies Co., Ltd. Copyright YYYY-YYYY,  All rights reserved
 * 描    述:  <描述>
 * 修改时间:  2015-7-10
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */

/**
 * 
 * @version [版本号, 2015-7-10]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
public class Test
{
    public static void main(String[] args)
    {
        
        try
        {
            URLConnection openConnection = new URL("服务器文件的访问地址").openConnection();
            
            InputStream is = openConnection.getInputStream();
            
            byte[] buff = new byte[1024];
            int len;
            
            FileOutputStream fos = new FileOutputStream("c:你的文件名.扩展名");
            
            if (null != is)
            {
                
                while ((len = is.read(buff)) != -1)
                {
                    fos.write(buff, 0, len);
                }
            }
            fos.close();
            is.close();
        }
        catch (MalformedURLException e)
        {
            e.printStackTrace();
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

8、Java编写程序,用于下载HTTP服务器上的某个文件

发送http请求,获得二进制流,然后用outputstream输出成对应文件格式就行了

与java文件下载服务器相关的知识