1
votes

Need help to upload numpy array image to an FTP server. I have read some topic about keep file in temp but I already try and not work ;(

import ftplib
from PIL import Image
from io import BytesIO
import numpy as np

data = np.random.random((100,100))
npArray_image = (255.0 / data.max() * (data - data.min())).astype(np.uint8)

img = Image.fromarray(npArray_image.astype('uint8'))
temp = BytesIO()
img.save(temp, format="PNG")

ftp = ftplib.FTP('ftp.server', 'user', 'pass')
ftp.storbinary('STOR /public_html/imgs/test.png', temp)

and I got message

226 File successfully transferred

But the uploaded file is empty.

1

1 Answers

1
votes

You have to seek a read pointer of the buffer back to the beginning, before you try to upload the buffer:

temp.seek(0)
ftp.storbinary('STOR /public_html/imgs/test.png', temp)