我正在django 2.1中开发一个应用程序,在该应用程序中,我必须通过模态上传数量不确定的音频,然后将信息传递给启动模态的视图。 但是,在填写主视图表单之前,不应将这些音频存储在数据库中。然后我想到了这些解决方案:
首先,我考虑过将其保存为会话属性,但是FileField的内容不是JSON可序列化的,这是行不通的。
第二,我想到了LocalStorage属性,但是如果文件超过大小,我将遇到问题。
第三,我考虑过要获取文件路径,然后创建音频,但是由于我正在阅读,这是一种不好的做法,只有在磁盘上创建了文件(即,文件位于TemporaryUploadedFile中但我的文件中)时才能获取重量应少于1MB
我可以选择将所有小于2.5MB的文件都存储在InMemoryUploadedFile中,但是我不知道如何获取它们。有谁知道这是怎么做的?还是我还可以保存临时音频列表?
答案 0 :(得分:0)
InMemoryUploadedFile 是文件对象的包装。您可以使用 file 属性访问文件对象。
file_in_memory # <InMemoryUploadedFile: xxx (xxx/xxx)>
file_object = file_in_memory.file
答案 1 :(得分:0)
客户端:
var file = document.getElementById('file');
const formData = new FormData();
formData.append('file', file[0]);
fetch('api/upload_file/',{
method:'POST',
body:formData
}).then(res => console.log(res);
.catch(error => console.log(error);
在服务器端:
InMemoryUploadedFile 可以通过以下方式访问:
file = request.FILES.get('file')