master-sf1.0
This commit is contained in:
47
sf_mrs_connect/models/ftp_operate.py
Normal file
47
sf_mrs_connect/models/ftp_operate.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
import posixpath
|
||||
from odoo.modules import get_resource_path
|
||||
from ftplib import FTP
|
||||
import logging
|
||||
|
||||
|
||||
# FTP接口类
|
||||
class FtpController():
|
||||
'''
|
||||
这是ftp接口类,在类初始化的时候就连接了ftp服务器,能否成功连接有反馈。
|
||||
类中定义了两个接口:上传接口和删除接口
|
||||
'''
|
||||
|
||||
ftp = FTP()
|
||||
|
||||
def __init__(self, host, port, username, password):
|
||||
try:
|
||||
self.ftp.connect(host, port)
|
||||
self.ftp.login(username, password)
|
||||
logging.info("ftp连接成功")
|
||||
except:
|
||||
logging.info("ftp连接失败")
|
||||
|
||||
# 下载目录下的文件
|
||||
def download_file_tree(self, target_dir, serverdir):
|
||||
if not os.path.exists(serverdir):
|
||||
os.makedirs(serverdir)
|
||||
try:
|
||||
logging.info("进入FTP目录 ")
|
||||
self.ftp.cwd(target_dir) # 切换工作路径
|
||||
logging.info('FTP目录:%s' % target_dir)
|
||||
remotenames = self.ftp.nlst()
|
||||
logging.info('FTP目录文件:%s' % remotenames)
|
||||
for file in remotenames:
|
||||
server = os.path.join(serverdir, file)
|
||||
if file.find(".") != -1:
|
||||
self.download_file(server, file)
|
||||
except:
|
||||
return False
|
||||
|
||||
# 下载指定目录下的指定文件
|
||||
def download_file(self, serverfile, remotefile):
|
||||
file_handler = open(serverfile, 'wb')
|
||||
self.ftp.retrbinary('RETR ' + remotefile, file_handler.write)
|
||||
file_handler.close()
|
||||
Reference in New Issue
Block a user