如何在django中获取上传的文件名
Posted
技术标签:
【中文标题】如何在django中获取上传的文件名【英文标题】:how to get uploaded file name in django 【发布时间】:2016-04-07 02:40:16 【问题描述】:问题背景 我是 Django 的新手。我正在尝试从客户端上传文件并保存。 为此,我创建了以下模型。
from django.db import models
class UploadFile(models.Model):
uploadfile = models.FileField(upload_to='toProcess/')
我正在使用下面的这个模型来保存文件。
newfile = UploadFile(uploadfile = request.FILES['file'])
newfile.save()
正在保存文件。但现在我想处理保存的文件。在 django 中,如果同名文件已经存在,那么它会在原始文件名中添加一些唯一的后缀。我对这种方法很满意,不想编写新方法来创建唯一的文件名。
问题- 如何获取 django 为文件计算的新唯一名称?
意思是如果我两次上传同一个文件说“abc.pdf”,那么它会将第一个上传的文件保存为“abc.pdf”,第二个上传的文件保存为“abc_somesuffix.pdf”。如何知道保存的文件名是什么?
【问题讨论】:
newfile.uploadfile.name
不起作用吗?
@Pynchia- 是的。它有效..谢谢:)
【参考方案1】:
据我所知,在您的情况下,文件名存储在模型字段的name
属性中
newfile.uploadfile.name
文件的路径存放在
newfile.uploadfile.path
请参阅official Django 文档以获取更多参考,以及许多其他 SO Q&A(例如this one)
如果您想采用自己的文件名格式,您可以在模型字段的upload_to
参数中指定一个可调用对象,如explained here
【讨论】:
以上是关于如何在django中获取上传的文件名的主要内容,如果未能解决你的问题,请参考以下文章