在FTP上保存创建的图像?

时间:2017-10-28 14:17:28

标签: python image ftp

我为学校项目创建了一个.tiff图像生成器,它在我的电脑上工作得很好!

此生成器现在位于ftp服务器上,它生成.tiff,并将其保存在ftp上以便能够下载.. 但它不起作用。当用户点击指定的按钮时,我用函数php exec()或system()调用我的python脚本"生成" 你知道如何用我的python脚本在ftp服务器上保存我的img .tiff吗?

感谢您的回答,对不起我的英语,我是法国人。

img = Image.fromarray(data, 'CMYK') #Make image from matrix 
ftp = FTP('wbe-site', 'Identifiant', 'Password') #it's changed in my  
code
etat = ftp.getwelcome()
print("Etat : ", etat)
f = open(img, 'rb')     # Open the image 
ftp.storbinary('STOR carte.tiff', f)  #Save file on FTP
f.close()                                   # Close the file
ftp.quit()

2 个答案:

答案 0 :(得分:2)

如果您使用ftplib,则可以使用以下代码:

import ftplib
session = ftplib.FTP('server.address.com','USERNAME','PASSWORD')
file = open('kitten.jpg','rb')                  # file to send
session.storbinary('STOR kitten.jpg', file)     # send the file
file.close()                                    # close file and FTP
session.quit()

您正在打开图像,而不是给open函数一个字符串。

答案 1 :(得分:0)

在通过堆栈溢出和互联网耗尽了所有答案之后,我终于明白了。在将其发布到ftp之前,您必须对img之类的数组进行buff,并将缓冲区传递给IO之类的文件。

des_ftp = ftplib.FTP()
des_ftp.cwd(DES_DIR)
_, buffer = cv2.imencode('.JPG', img)
io_buf = io.BytesIO(buffer)

des_ftp.storbinary('STOR '+img_name, io_buf)

为我工作。