【发布时间】:2023-03-31 21:43:01
【问题描述】:
我有一个包含以下标题的表单:
<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()">
除了许多其他输入之外,文件上传是重要的输入。
这个表单被提交到我的视图中,并且除了文件上传之外的所有事情都正确。
当我在视图中执行“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() 写入目的地,我会得到 p>
AttributeError: 'str' object has no attribute 'chunks'
任何形式的帮助将不胜感激。我已经坚持了一段时间,希望得到一些帮助
【问题讨论】:
标签: django