Tho*_*hom 3 python django filenames
我正在寻找 Django 在上传文件时用来生成唯一文件名的方法。
例如,如果我test.csv在同一目录中上传一个调用了两次的文件,则第一个文件将另存为test.csv,第二个文件将另存为test_2.csv. 我已经尝试找到 Django 如何管理它,但我只发现django.utils.text.get_valid_filename哪个可能有用,但这不是我正在寻找的......
我已经看到其他带有随机命名解决方案的 主题,这不是我在这里寻找的:)我真的很想了解 Django 如何管理这个问题。
事实上,在你的帮助下我仔细观察并发现了一些东西:)
所以基本上我必须做类似的事情:
from django.core.files.storage import FileSystemStorage
fss = FileSystemStorage()
filepath = fss.get_available_name(filepath)
Run Code Online (Sandbox Code Playgroud)
谢谢你们 :)
PS:如果您感兴趣, django.core.file.storage.FileSystemStorage._save的评论说:
get_available_name 和保存文件之间存在潜在的竞争条件;两个线程有可能返回相同的名称,此时就会发生各种有趣的事情。所以我们需要尝试创建该文件,但如果它已经存在,我们必须返回 get_available_name() 并重试。
| 归档时间: |
|
| 查看次数: |
1638 次 |
| 最近记录: |