django中如何获取上传的文件名

2023-11-21

问题背景我是 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”。如何知道保存的文件的名称是什么?


据我所知,文件名存储在name模型字段的属性,在您的情况下

newfile.uploadfile.name

文件的路径存储在

newfile.uploadfile.path

请参阅官方Django文档供进一步参考,以及许多其他 SO 问答(例如this one)

如果您想采用自己的文件名格式,您可以在upload_to模型场的参数,如在这里解释

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

django中如何获取上传的文件名 的相关文章

随机推荐

  • Java 中使用 double 类型进行除法时出错

    好的 我已经把头撞在墙上了大约两个小时 现在试图找出世界上的原因double answer 364 365 告诉我answer是 0 或者任何其他组合double就此而言 它只是截断小数 我只是不知道为什么 364 365 执行整数除法 截
  • 如何为每个外键选择有限数量的行?

    我有这张表 id feed id 假设我有 500 行 我想为每个 feed id 选择 3 个条目 总数限制为 50 这个SQL该怎么写呢 Use SELECT x feedid FROM SELECT t feedid CASE WHE
  • 你能确定一个字符串在 C 中是否可释放吗? [复制]

    这个问题在这里已经有答案了 如果我说 include
  • 如何在 imageview 上提供色调分离效果?

    我正在尝试为 imageview 提供 Photoshop 色调分离效果 这是一张普通图像 应用色调分离效果后 它应该看起来像这样 这个效果取自pixlr 图像编辑器 我想要以编程方式获得精确的效果 我尝试过的是 我试图通过 Saturat
  • 使用 ASP.NET MVC 进行 Windows 身份验证

    我为我的 asp net mvc 1 0 Web 应用程序构建了一个自定义登录系统 因为我为每个用户存储大量用户数据 因此我决定不尝试为 Windows 身份验证添加自定义表 登录系统基本上使用SQL Server 2005或2008 和我
  • 如何在同一个应用程序中使用多个 JDBC 驱动程序?

    据我了解 一旦我执行 Class forName net sourceforge jtds jdbc Driver 我初始化应用程序以全局使用 JTDS SQL Server 驱动程序 并且 java sql DriverManager g
  • 使用 JKS 和/或 PFX 证书从 C# 客户端调用 Java Web 服务

    我基本上需要确保我对该服务的请求 我被提供了一个JAR测试客户端和两个文件 trust jks and Client pfx 但我不知道如何使用它们 我了解 X509Certificate2 类以某种方式涉及 执行测试客户端的命令行如下 j
  • (size_t)((char *)0) 的计算结果是否不等于 0?

    根据中的答复 为什么要在 offsetof 中减去空指针 以及我对 K R 的阅读 C 标准并不要求这样做 size t char 0 0 不过 我从未见过将空指针转换为整数类型会计算出其他值的情况 如果有一个编译器或场景 size t c
  • webpack-dev-server 反应路由器推送状态

    我试图让 React router 与 webpack dev server 一起使用 但一直无法获取 SOMEURL 这是因为 webpack dev server 正在寻找该特定文件但找不到它 我希望 webpack 诉诸使用反应路由器
  • jQuery 验证 - 需要工作但不接受

    我正在上传图像并尝试使用 jquery 对其进行验证 这是我的代码
  • MATLAB 中的纹理映射

    我有 3D 空间中的点及其相应的 2D 图像点 如何利用 3D 点制作网格 然后对网格形成的三角形面进行纹理处理 请注意该函数trisurf您最初尝试使用的返回一个句柄patch目的 如果你看一下 FaceColor 补丁对象的属性 你可以
  • 文件路径中的 Java JTree 目录结构

    我一直在努力解决这个问题 所以也许你们中的一些人可以帮助我 我有一个文件列表及其完整路径 这些只是文件位于另一台计算机上的字符串 例如 C a b c file1 txt C a b c file2 txt C a d file3 txt
  • 检测可滚动小部件是否手动或以编程方式滚动

    有没有办法检测是否滚动 PageView PageController or Scrollable小部件 ScrollController 由用户手动完成或使用编程方式完成jumpTo or animateTo 在控制器对象上 将可滚动小部
  • Django 管理员注册内联用户配置文件管理员时出现问题

    我目前正在开发一个 django 项目 我正在尝试将 UserProfile 模型内联添加到我的 User 模型中 在我的 models py 中我有 class UserProfile models Model Extension to
  • 将网格线与点阵图形中的轴刻度对齐

    如果选择自定义网格线 是否有办法对齐网格线 默认情况下 panel grid h 1 v 1 可以完成这项工作 但我想根据轴刻度细化网格 将 h 和 v 设置为轴刻度的负长度并不总是有效 更新 下面是一个例子 我希望实现水平网格线与 y 轴
  • 从 heapq python 中弹出最大值,Python 中有最大堆吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Python 中使用什么来实现最大堆 我正在尝试以某种方式实现 python 的 heapq 但对于最大堆 解决方案是使用 1 和多个队列编号 但这对我没有帮助 因为我需要在堆中存储 url 所以
  • 如何更改 HTML5 表单验证消息中的图像?

    Using 本文 我正在更改一些 HTML5 表单验证弹出窗口的样式 但是 除了我添加的新红色 X 之外 我的错误弹出窗口仍然在错误中显示默认的橙色感叹号 如何去掉橙色感叹号 见下图 到目前为止 我只在 Chrome 中进行测试 这是我在那
  • 仅显示 SQLite 中的视图

    我怎样才能在 SQLite 中只看到视图 tables命令列出视图和表 我只想查看视图而不是表格 Thanks 你可以做 SELECT sql FROM sqlite master WHERE type view 为了对其进行微调 head
  • 匹配通配符严格,但找不到元素 'context:component-scan 的声明

    我在尝试我的第一个 Spring 项目时遇到以下错误 Caused by org xml sax SAXParseException cvc complex type 2 4 c The matching wildcard is stric
  • django中如何获取上传的文件名

    问题背景我是 Django 新手 我正在尝试从客户端上传文件并保存它 为此 我创建了以下模型 from django db import models class UploadFile models Model uploadfile mod