【问题标题】:django request absolute file pathdjango请求绝对文件路径
【发布时间】:2019-03-09 17:01:49
【问题描述】:

使用 django 请求,我正在尝试获取原始上传文件的绝对文件路径。原因是我想修改原始文件,因此仅文件名或某些“媒体根”位置是不够的。

我尝试做类似的事情

request.FILES['file'].name

但这只是给了我名称,而不是路径(既不是绝对的也不是相对的)。谷歌并没有真正帮助,文件名很常见,但路径似乎是一个特例。我希望它甚至可能是 XP。

提前谢谢!

【问题讨论】:

    标签: django-request


    【解决方案1】:

    试试这个。

    myfile = request.FILES['filename']

    fs = FileSystemStorage()

    文件名 = fs.save(myfile.name, myfile)

    uploaded_file_url = fs.url(文件名)

    打印(uploaded_file_url)

    还要确保在 settings.py 文件的 Middleware_classes 下添加“django.core.files.storage.FileSystemStorage”

    【讨论】:

    • 遗憾的是,这只是给了我 /media/ 的位置,而不是原来的位置。
    • 另外,我必须使用 FILES['file'] 而不是 FILES['filename]。使用文件名给了我一个关键错误。这是我应该担心的事情吗?
    • 我想说,如果允许用户访问文件的实际位置是个坏主意。这实际上是一个安全问题。猜猜你将无法明确获得。
    • 您获得 /media/ 的原因是,django 会复制您上传到 django 应用程序中的媒体目录的文件,然后使用该文件进行进一步处理。它不会改变正在上传的文件的任何实际信息
    • FILES['filename'] 不是问题。这取决于我们在模板中使用的 id。在您的情况下,我想您的 html 中有用户 id="file"
    猜你喜欢
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2011-01-26
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多