Right now, I have the following code:
pilimg = PILImage.open(img_file_tmp) # img_file_tmp just contains the image to read
pilimg.thumbnail((200,200), PILImage.ANTIALIAS)
pilimg.save(fn, 'PNG') # fn is a filename
This works just fine for saving to a local file pointed to by fn
. However, what I would want this to do instead is to save the file on a remote FTP server.
What is the easiest way to achieve this?
Python's
ftplib
library can initiate an FTP transfer, but PIL cannot write directly to an FTP server.What you can do is write the result to a file and then upload it to the FTP server using the FTP library. There are complete examples of how to connect in the
ftplib
manual so I'll focus just on the sending part:If you have enough memory for the compressed image data, you can avoid the intermediate file by having PIL write to a
StringIO
, and then passing that object into the FTP library: