辉煌仪奇 2021-11-26 18:11 采纳率: 46.6%
浏览 279
已结题

django 文件上传存储后重名怎么解决

需求

现在面临的问题就是上传重名文件,将他们写入后变成了一个文件,现在需要的方案是上传的时候可以重名,但是存储在物理路径后不能重名,下载后文件名字为上传的文件名

我想偷懒,django admin自带上传有重名解决方案,然后下载也是上传的名字,但是自己写就不行了,想找找有没有类似django admin上传解决重名的方案

django创建了一个model 代码如下

class oderexcel(models.Model):
    file = models.FileField(upload_to='oderexcel')
    name = models.CharField(max_length=128)

    class Meta:
        db_table = 'oderexcel'
        verbose_name = '材料报表'
        verbose_name_plural = verbose_name
    def __str__(self):

存储文件是接受到用户上传的文件后写入的,写入方式如下
filename:用户上传的文件名

#数据库存入名
filenamepath = r"/oderexcel/" + filename
#将文件存储路径存数据库
oderexcel.objects.create(file=filenamepath,name=filename)
#存文件物理路径
filename = r'static/media/oderexcel/' + filename
#存储文件
workbook.save(filename)

img

img

  • 写回答

2条回答 默认 最新

  • owenhejiayi 2021-11-26 21:13
    关注

    着网站运作,难免有些时候需要上传文件。上传文件自然是上传到网站所在的服务器,日积月累,慢慢地网站存储空间越来越少。而且网站迁移和备份都不方便,使用这些资源时也占用大量服务器流量。

    较好的解决方案是使用第三方存储服务器,例如七牛、阿里云OSS、亚马逊S3等。将文件都放到这些存储服务器,可以减少服务器负担。服务器只剩下必要的静态文件和代码。

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月30日
  • 修改了问题 11月26日
  • 修改了问题 11月26日
  • 修改了问题 11月26日
  • 展开全部