gpt4 book ai didi

Django 多文件上传

转载 作者:行者123 更新时间:2023-12-03 21:06:38 25 4
gpt4 key购买 nike

我有一个具有以下标题的表单:

<form enctype="multipart/form-data" target="invisible" action="/calendar/createEvent/" method="POST">

和以下正文:
<input class="multiFileInput" type="file" name="files" onchange="newInput();">
<input class="multiFileInput" type="file" name="files" onchange="newInput()">
<input class="multiFileInput" type="file" name="files" onchange="newInput()">

与许多其他输入一起,但文件上传是重要的。

这个表单被提交到我的 View 中,除了文件上传之外,所有的事情都是正确的。

当我在 View 中执行“print request.FILES”时,我得到:
<MultiValueDict: {u'files': [<TemporaryUploadedFile: boson.mp3 (audio/mpeg)>, <TemporaryUploadedFile: hadron.mp3 (audio/mpeg)>]}>

但是当我尝试对它们做更多事情时,它不会让我将它们用作文件。

例如,假设我有以下表格:
class File(models.Model):
file = models.FileField(upload_to='files')

class Test(models.Model):
name = models.CharField(max_length=10)
files = models.ManyToManyField(File, related_name='files')

如果在我看来我说:
for f in request.FILES['files']:

test = Test()
test.name='test'
test.save

empt = File()
empt.file = f
empt.save()

test.files.add(empt)

我得到以下异常:
DjangoUnicodeDecodeError: 'utf8' codec can't decode byte 0xff in position 0: invalid start byte. You passed in '\xff\xfb\xe0d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00Info\x00\x00\x00\x0f\x00\x00\x98C\x02m~\t\x00\x03\x05\x08\n'

另外,如果我尝试使用 f.chunks() 写入目的地,我会得到
AttributeError: 'str' object has no attribute 'chunks'

任何形式的帮助将不胜感激。我已经坚持了一段时间,希望得到一些帮助

最佳答案

您应该使用 getlist 访问多部分值,即:

for afile in request.FILES.getlist('files'):
File(file=afile, files=test).save()

当您使用 request.FILES['files'] 时,我认为它不会将列表作为 python 列表获取。 .

另外,如果您想使用 HTML5 多文件上传而不是多文件形式,请查看此处: django form with multiple file fields

关于Django 多文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7183830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com