【问题标题】:Save user uploaded file to server using Python使用 Python 将用户上传的文件保存到服务器
【发布时间】:2013-06-16 09:03:57
【问题描述】:

我有一个小型拖放文件上传应用程序,我希望在 App Engine 上使用 Python 重写它,并计划将文件保存在 Google Cloud Storage 上。问题是,我不知道如何(或是否)可以在 Python 中保存文件。目前,当用户将文件拖入上传区域时,Javascript 会对其进行操作并将其发送到 PHP 文件。然后我可以通过执行以下操作将文件保存到服务器上的特定目录:

$tmp_name = $_FILES['file']['tmp_name'];
$name = $_FILES['file']['name'];
move_uploaded_file($tmp_name, getcwd()."/".$name);

我的问题是,我可以用 Python 来代替 PHP 吗?如果是这样,我在寻找什么,因为我无法找到有关此主题的任何内容。我了解我无法将文件保存到 App Engine 并将使用 Google Cloud Storage。我怎样才能做到这一点?假设我在自己的服务器上,有没有通用的方法来做到这一点?谢谢!

编辑:忽略拖放部分,我可以简单地使用 html 让用户在他们的桌面上浏览文件,但使用 Python 获取该文件并将其保存在某处吗?

【问题讨论】:

  • 您需要从阅读 appengine 能做什么和不能做什么开始。对于初学者,它不允许您编写文件系统。您需要将文件存储在 datatstore(限制 1MB)或 GCS Google CLoud Storage 中。不做功课,你就走不远。
  • 我稍微编辑了这个问题。我意识到这一点,并感谢您指出这一点。比让它专门在 App Engine 上运行更重要的是,我可以让它在一般情况下运行吗?

标签: php python google-app-engine drag-and-drop google-cloud-storage


【解决方案1】:

如前所述,您将无法将文件保存到文件系统,但您可以将文件存储在数据存储(1Mb 限制)或 blobstore(32Mb 限制?)中。 此链接提供了使用 blobstore 上传文件的示例https://developers.google.com/appengine/docs/python/blobstore/#Uploading_a_Blob

【讨论】:

  • 谢谢!有没有一种方法可以在不使用 blobstore 的情况下使用 Python 来做到这一点?我正在寻找最通用的方法来做到这一点。我已经修改了我的问题以使事情更清楚。
  • 无法在不涉及使用数据存储或 blob 存储的应用引擎上保存文件。我认为您的问题需要一些工作,目前尚不清楚您是要在自己的服务器上还是在 Google App Engine 上进行这项工作。
  • 我意识到我现在不确定自己需要什么。你的回答让我思考清楚,帮助我更好地理解我所追求的。谢谢!
猜你喜欢
  • 2018-12-26
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 2010-12-09
  • 2013-06-24
  • 1970-01-01
相关资源
最近更新 更多