【问题标题】:Django: Save link to a local file w/o uploading fileDjango:将链接保存到本地文件而无需上传文件
【发布时间】:2013-11-29 05:37:03
【问题描述】:

我正在尝试使用模型表单将链接保存到我的模型中的本地文件。我不想自己上传所选文件,我只想保存文件的完整路径:

  1. 在呈现的表单视图中通过<input type="file"> 选择文件
  2. 通过POST提交表格
  3. 不要上传所选文件,而是保存文件的完整路径,例如'C:/myuploadedfile.pdf' 在我的模型中

到目前为止我所尝试的,form.clean() 中的一些 hack 甚至都没有奏效。

一些建议如何完成这样的要求?

【问题讨论】:

  • 即使有可能,但事实并非如此,在用户计算机上存储本地文件路径有什么用?
  • 我们在公司内部使用该应用程序。因此文件路径将指向用户可评估的网络驱动器。

标签: django django-forms django-file-upload


【解决方案1】:

首先,您将无法从 html/javascript 获取完整的本地路径。这是由于浏览器的安全性,以防止此类信息的泄露。当您向POST 提交文件时,您将获得文件数据和文件名。您可以使用 Flash、Silverlight、Java 或任何其他为您提供较低级别访问权限的插件收集信息,但这比提交表单要复杂得多。

其次,假设您只想保存文件名。您只需查看request.FILES['input_name'].name 即可获取文件名并将其直接存储到TextField

【讨论】:

  • 谢谢蒂姆。这大概是第一步。第二步是修改fileField/<input> 小部件,以便提供 (1) 到本地文件的链接和 (2) 编辑本地文件链接。我认为可能有一个“复制粘贴”解决方案。
  • 如果您不存储文件,请不要使用FileField。您不必使用 django 表单。您可以简单地创建自己的 html 并处理响应以满足您的要求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多