ftp

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")

你可能感兴趣的:(apache,cms,.net)