使用Pylons Web Framework上传Zip档案

时间:2011-07-27 18:42:35

标签: python rest zip pylons shutil

我正在使用Pylons Framework(1.0)开发WebApplication。一个想要的功能是上传zip存档,将它们存储在服务器上,以后能够下载它们。

我首先在我的REST控制器中做到了这一点:

def submit(self):   
    uploadedFile = request.POST['myFile']
    path = 'some/path/in/the/filesystem'
    storedFile = open(path, 'wb')
    shutil.copyfileobj(uploadedFile.file, storedFile)
    storedOrbjetFile.close()

不幸的是,这会导致存档文件损坏。我试图直接使用uploadedFile.value,它似乎工作,但文件副本将在后端更深,我不想将值传递给我的后端,而是文件。

我找到的替代解决方案是创建一个新的临时文件并复制其中的值。然后我可以获取tempfile的文件路径并将其路径传递给后端。

因此,几乎没有问题:

  • 如何清理并避免额外的复制操作?
  • 做这种事情的常用程序是什么?
  • 是否可以使用pylons提供的file.file(tempfile)和shutil.copyobjfile,为什么存档被破坏?

我的用例似乎很常见,所以我有点惊讶我遇到了困难..

感谢您的帮助。

0 个答案:

没有答案