properties = System.getProperties();
java.io.InputStream in = this.getClass().getClassLoader()
.getResourceAsStream(fileUrl);
properties.load(in);
in.close();
___________________________________________________
package ftp;
import java.io.File;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import com.zte.cms.contractdocument.common.util.CDFtpClient;
import com.zte.cms.contractdocument.common.util.CDFtpFactory;
public class CDFtpService implements ICDFtpService
{
/**
* 删除目录下所有文件
* 实现流程:1.先查出文件下所有的文件列表
* 2.循环删除非目录类型的文件
*/
public void deleteAllFiles(String directory) throws Exception
{
CDFtpClient ftp = CDFtpFactory.createCDFtpClient();
//初始化FTP服务
ftp.initiate();
//获取目录下文件列表
FTPFile[] files = ftp.listFiles(directory);
//循环删除这些文件
for (int i = 0; i < files.length; i++)
{
FTPFile file = files[i];
try
{
//如果不是目录类型则删除
if (file.getType() != FTPFile.DIRECTORY_TYPE)
{
ftp.deleteFile(directory + File.separator + file.getName());
}
}
catch (Exception e)
{
e.printStackTrace();
continue;
}
}
//销毁FTP服务
ftp.destroy();
}
/**
* 查询目录下所有文件列表
* 实现流程:查询文件下的文件信息列表
* @param directory
* @return
*/
public FTPFile[] listFiles(String directory) throws Exception
{
CDFtpClient ftp = CDFtpFactory.createCDFtpClient();
ftp.initiate();
FTPFile[] rs = ftp.listFiles(directory);
ftp.destroy();
return rs;
}
/**
* 创建指定的文件夹
* 实现流程:判断指定目录是否存在,如果不存在则创建目录
*/
public void createDirectory(String directory) throws Exception
{
CDFtpClient ftp = CDFtpFactory.createCDFtpClient();
//初始化FTP服务
ftp.initiate();
if (!this.isExist(directory, ftp))
{
//创建文件夹
ftp.makeDirectory(directory);
}
//销毁FTP服务
ftp.destroy();
}
/**
* 判断文件夹下是否有PDG格式文件
* 实现流程:1.取得目录下的文件夹列表
* 2.判断文件夹下是否存在PDG文件
* @param directory
* @return
* @throws Exception
*/
public boolean isExistPDGFiles(String directory) throws Exception
{
boolean flag = false;
CDFtpClient ftp = CDFtpFactory.createCDFtpClient();
ftp.initiate();
//获取目录下文件列表
FTPFile[] files = ftp.listFiles(directory);
for (int i = 0; i < files.length; i++)
{
String fileName = files[i].getName();
if (fileName.toUpperCase().indexOf(".PDG") != -1)
{
flag = true;
break;
}
}
ftp.destroy();
return flag;
}
/**
* 判断目录是否存在
* 实现流程:调用isExist(String URL,FTPClient ftp)判断是否存在目录
* @param URL
* @return
*/
public boolean isExist(String URL) throws Exception
{
boolean flag = false;
CDFtpClient ftp = CDFtpFactory.createCDFtpClient();
//初始化FTP服务
ftp.initiate();
flag = this.isExist(URL, ftp);
//销毁FTP服务
ftp.destroy();
return flag;
}
/**
* 判断目录是否存在
* 实现流程:取得对应文件夹下列表,判断文件夹下列表length是否大于0
* 大于0则存在否则不存在
* @param URL
* @param ftp
* @return
* @throws Exception
*/
private boolean isExist(String URL,FTPClient ftp) throws Exception
{
//判断目录是否存在
FTPFile[] files = ftp.listFiles(URL);
if (files.length > 0)
{
return true;
}
return false;
}
// public static void main(String[] args)
// {
// CDFtpService ftps = new CDFtpService();
// try
// {
// String url = FtpFileUrlCreater.getInstance().getRelativeContractURL("123456");
//
// if (!ftps.isExist(url))
// {
// ftps.createDirectory(url);
// }
// String url = FtpFileUrlCreater.getInstance().getRelativeVersionURL("123456", "01", "V002");
// ftps.deleteAllFiles(url);
// }
// catch (Exception e)
// {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// }
}
********************************************************
conn = DBUtil.getConnection();
stmt = conn.createStatement();
rs = stmt.executeQuery(sqlBuf.toString());
while (rs.next())
{
String name = rs.getString("ATTACHMENT_NAME");
Blob b = rs.getBlob("ATTACHMENT_CONTENT");
if (b != null)
{
InputStream is = b.getBinaryStream();
BufferedInputStream bis = new BufferedInputStream(is);
// 设置response
response.setContentType("application/x-msdownload; charset=UTF-8");
response.addHeader("content-type", "application/x-msdownload;");
//String fileName = new String(name.getBytes("GB2312"),"UTF-8");
response.addHeader("content-disposition", "attachment; filename="
+ URLEncoder.encode(name,"UTF-8"));
response.setContentLength((int)b.length());
OutputStream out = response.getOutputStream();
int length = 0;
byte[] buffer = new byte[10240];
while ((length = is.read(buffer)) != -1)
{
out.write(buffer, 0, length);
}
out.flush();
bis.close();
rs.getLong("ATTACHMENT_ID")
分享到:
相关推荐
WebFTP是一种基于Web的FTP(File Transfer Protocol)客户端软件,允许用户通过网页浏览器进行FTP文件传输操作。在本文中,我们将深入探讨FTP的基本概念、WebFTP的工作原理以及它在实际应用中的重要性。 FTP,全称...
WebFtp是一款基于ASP.NET技术实现的Web版FTP服务,它允许用户通过浏览器进行FTP相关的操作,如上传、下载、删除文件,重命名文件,编辑文本文件,以及创建和删除文件夹。这样的服务大大简化了FTP客户端的使用,使得...
FTP服务器是一种用于在互联网上进行文件传输的服务,它允许用户从一台计算机(客户端)向另一台计算机(服务器)上传或下载文件。FTP(File Transfer Protocol)是这项服务的基础协议,它是一个标准网络协议,用于在...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在计算机之间传输文件。在这个场景中,我们将探讨如何使用Node.js中的`ftp-srv`库来创建一个简单的FTP服务器。`ftp-srv`是一个易于使用的FTP服务器模块...
FTP(File Transfer Protocol)是一种基于TCP/IP协议的网络协议,用于在网络上进行文件传输。本文将详细探讨如何实现FTP客户端的两个关键功能:FTPGET(下载文件)和FTPPUT(上传文件),以及这两个功能在实际应用中...
在IT行业中,FTP(File Transfer Protocol)是一种广泛用于在互联网上传输文件的协议。本教程将详细介绍如何将图片传输到FTP服务器以及如何在FTP服务器上显示这些图片。 首先,我们需要理解FTP的基本工作原理。FTP...
在Linux系统中,FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。本资源提供了一种离线安装FTP服务器的方法,特别适用于没有网络连接或者网络环境受限的Linux环境。这里我们将...
**webFTP概述** webFTP是一个基于PHP开发的在线FTP文件管理系统,它允许用户通过Web界面进行FTP服务器的文件管理和操作,极大地提升了FTP管理的便捷性和灵活性。作为一个轻量级的解决方案,webFTP使得用户无需安装...
FTP(File Transfer Protocol)是一种标准网络协议,用于在计算机网络上在客户端和服务器之间传输文件。在QT5.0中实现FTP服务器,可以让我们自定义一个能够处理文件上传和下载的服务,这对于开发文件管理或共享应用...
麒麟V10服务器搭建FTP服务 FTP(File Transfer Protocol)是一种常用的文件传输协议,麒麟V10服务器搭建FTP服务可以帮助用户快速搭建FTP服务器,实现文件的上传、下载和共享。本文将指导用户如何在麒麟V10服务器上...
详解ftp创建文件权限问题 一、问题 有一个这样的需求,admin为一个Linux为其FTP应用创建的一个有权限限制的用户,通过admin用户可以进行登录FTP服务,登录FTP服务后,创建文件夹,该文件夹的用户和用户组都是admin,...
如果用本FTP客户端登录某个FTP服务器,则先必须申请一个FTP空间,申请FTP空间时,它会给你一个FTP主机地址、用户名称、用户密码。 测试步骤: 1、项目编译并运行。 2、申请一个FTP空间(这里不讨论)。 3、输入FTP...
ftp4j是个很年轻的开源项目,但是试用后发现很好很强大,如果你找一个纯java的FTP库,要支持socks4,socks4a,socks5,http代理,就是他了! 比apache的FTPClient(不支持代理)、半商业的edtFTPj(PRO支持代理,...
实现FTP批量上传文件到指定目录功能的bat脚本: @echo off @echo delete iplist.txt @del iplist.txt @setlocal EnableDelayedExpansion @echo create upload iplist.... @for /L %%i in (51,1,52) do ( @echo ...
FTP(File Transfer Protocol)是一种广泛使用的网络协议,用于在互联网上进行文件传输。在这个开源代码库中,我们关注的是C++实现的FTP客户端或服务器端的代码,这为理解和学习FTP工作原理提供了宝贵资源。 首先,...
2. **QNAM与FTP**:虽然QNetworkAccessManager没有直接提供FTP操作的接口,但可以通过构造一个QNAM的子类并重写其内部的槽函数,来监听FTP相关的信号,从而实现FTP客户端功能。 3. **QNetworkRequest**:创建...
Quick Easy FTP Server是一款专为中文用户设计的FTP服务器软件,其V3.9.1绿色版无需安装,方便快捷。FTP(File Transfer Protocol)是一种网络协议,主要用于在互联网上进行文件传输,它允许用户从一台计算机上传或...
FTP Utility 2.0 是一款由柯尼卡美能达公司开发的日文版FTP客户端工具,主要用于方便用户在计算机和远程服务器之间传输文件。这款软件适用于企业或个人,特别是那些需要频繁进行文件上传和下载的用户。通过FTP ...
FTP 的两种不同工作模式:PORT(主动模式)与PASV(被动模式) 1、首先,我们要了解,FTP 工作的时候,需要用到两个连接:控制连接与数据连接,控制 连接专门用于FTP 控制命令及命令执行信息传送;数据连接专门用于...
【FTP服务介绍】 FTP(File Transfer Protocol)是互联网上一种用于传输文件的协议,它允许用户从一台远程服务器上下载或上传文件到另一台计算机。FTP服务器提供了存储和分享资源的功能,尤其在早期互联网中,FTP是...