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")
ftp
最新推荐文章于 2025-08-16 19:53:50 发布