文档详情

文件上传下载java.doc

发布:2017-05-20约6.09千字共5页下载文档
文本预览下载声明
文件下载: package com.ecc.liana.perbank.action; import java.io.File; import java.io.IOException; import .ftp.FTPClient; import com.ecc.emp.core.Context; import com.ecc.emp.core.EMPException; import com.ecc.liana.base.LianaAction; import com.ecc.liana.base.LianaConstants; import com.ecc.liana.base.LianaStandard; import com.ecc.liana.file.LianaFile; import .ftp.FtpService; public class FtpDownloadAction extends LianaAction { /** * 保存FTP服务器上文件位置的字段名称 */ private String ftpFileField; /** * 文件传输方式:true:二进制/false:ASCII */ private boolean binaryFile; /** * Method execute. * * @param context * Context * @return String * @throws Exception * @see com.ecc.emp.flow.Action#execute(Context) */ public String execute( Context context ) throws Exception { // 首先检查本地服务器是否已经存在要下载的文件 String filePath = LianaStandard.getSelfDefineSettingsValue( LianaConstants.SETTINGS_DOWNLOAD_ROOT ); String ftpFilePathName = (String) context.getDataValue( ftpFileField ); String localFilePathName = filePath + ftpFilePathName; if ( !new File( localFilePathName ).isFile() ) { // 如果本地服务器不存在文件,从FTP上下载 FtpService ftpService = (FtpService) context.getService( LianaConstants.FTP_SERVICE_NAME ); FTPClient ftpClient = null; try { // 建立本地目录结构 LianaFile.makeMultiDirectory( filePath, ftpFilePathName ); // 初始化连接 ftpClient = ftpService.initConnection(); // 设置传输方式 ftpService.setTransferMode( ftpClient, binaryFile ); // 下载文件 ftpService.downloadFile( ftpClient, ftpFilePathName, localFilePathName ); } finally { try { if ( ftpClient != null ) { ftpClient.logout(); } } catch ( IOException ex ) { // ex.printStackTrace(); } } } // 保存文件位置 context.setDataValue( LianaConstants.FIELD_DOWNLOAD_FILE, localFilePathName ); return DEFAULT_RETURN_VALUE; } /** * Method setFtpFileField. * * @param ftpFileField * String */ public void setFtpFileField(
显示全部
相似文档