Partial Upload With storbinary in python

萝らか妹 提交于 2020-01-16 05:24:31

问题


I've written some python code to download an image using

urllib.urlopen().read()

and then upload it to an FTP site using

ftplib.FTP().storbinary()

but I'm having a problem. Sometimes the image file is only partially uploaded, so I get images with the bottom 20% or so cut off. I've checked the locally downloaded version and I have successfully downloaded the entire image, which leads me to believe that it is a problem with storbinary. I believe I am opening and closing all of the files correctly. Does anyone have any clues as to why I'm getting a partial upload with storbinary?

Update: When I run through the commands in the Python shell, the upload completes successfully, I don't know why it would be different from when run as a script...


回答1:


It turns out I was not closing the downloaded file correctly. Let's all pretend this never happened.




回答2:


It's been a while since I looked at this code, but I remember the crux of it was that I was not closing the downloaded file correctly. I have the working code though, so just in case it was a problem with the upload and not the download, here are both snippets:

Here is the working code to download the image:

socket = urllib.urlopen(TheURL)
FileContents = socket.read()
LocalFilename = LocalDir + FilenameOnly
LocalFile = open(LocalDir + FilenameOnly, 'wb')
LocalFile.write(FileContents)
LocalFile.close()

Where TheURL is the URL of the file I'm trying to download, FilenameOnly is just the filename portion of the path, and LocalDir is the local destination. I believe my problem was that I was not calling LocalFile.close().

Here is the working code to upload the image:

FTPServer = ftplib.FTP(FTPServer, FTPUsername, FTPPassword)
UploadFile = open(Filename, "rb")
FTPServer.cwd(FTPSubDirectory)

UploadFile.close()
FTPServer.quit()

The problem could also have been that I was not calling FTPServer.quit()

If anyone has any questions about this code, I'll happily reply in the comments; I feel really bad that I left any Googlers hanging!



来源:https://stackoverflow.com/questions/670084/partial-upload-with-storbinary-in-python

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!