0

我正在使用 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,它似乎可以工作,但文件副本将在后端更深,我不想将值传递给我的后端而是文件。

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

因此,这导致了几个未解决的问题:

  • 我怎样才能做到这一点并避免额外的复制操作?
  • 做这种事情的一般程序是什么?
  • 是否可以将 pylons 提供的 file.file (tempfile) 与 shutil.copyobjfile 一起使用,为什么存档会损坏?

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

谢谢你的帮助。

4

0 回答 0