正如问题所示,我的表格是
file = forms.FileFIeld(widget = forms.FIleInput())
但这允许我浏览客户端计算机上的文件。我想告诉我自己的服务器端文件。我完全了解安全风险。这是我的个人项目,不会被其他人使用(以防万一有人会对我大喊大叫)。它不一定只是相同的机制。我只想从表格中获取此名称。不得上传或下载任何内容。
这将作为另一个服务器应用程序的文件选择。
如果无法浏览整台计算机,如何指定可以存储文件的目录以供进一步浏览?
答案 0 :(得分:2)
如果要构建一个系统来远程访问计算机上的文件,可以使用ftp或ssh来完成。
如果您需要访问特定目录中的文件,可以将它们放在django的static
部分并拥有django serve you static content。然而,这不是django的预期设计,您也可以使用Apache为http服务器提供文件。
如果您希望构建一个google docs / dropbox类型的Web服务,那么django可以帮助您作为Web框架。但是,您需要运行某种本地索引并使用PyLucene等内容将所有文件元数据索引添加到数据库,然后将相同的文件上载到可下载的path online或static
服务文件夹。这本身不是Django问题。
答案 1 :(得分:0)
您可以通过模型浏览存储的文件。
假设您的模型声明为此
import os
class Document(models.Model):
name = models.CharField(max_length=64)
doc_file = models.FileField(upload_to='documents')
您可以像任何其他字段一样获取文件
names = []
# To browse your saved file, get the containing models
documents = Document.objects.all()
for doc in documents:
# This is how you get the URL of the file field
url = doc.doc_file.url
# If you need the path of the stored file (in the server)
doc_path = doc.doc_file.path
# get name and size of the file
name, size = doc.doc_file.name.split(os.path.sep)[-1], doc.doc_file.size
names.append(name)
#process your file names
...
然后您只需处理该网址,例如,将其显示给您的用户。