Django后台批量获取InMemoryUploadedFile文件列表的方法
本文介绍Django中如何处理前端提交的图片集合。默认情况下request.FILES.get仅返回单个文件,针对批量上传场景,需使用getlist方法获取MultiValueDict中的InMemoryUploadedFile列表,从而实现批量文件处理。
Django批量获取文件列表的方法
在Django项目开发过程中,前端通过Form表单提交图片集合是常见需求。
var formdata = new FormData();
formdata.append("csrfmiddlewaretoken",'{{ csrf_token }}');
if ($('.js_file')[0].files.length > 0){
$.each($('.js_file')[0].files, function (index,file) {
formdata.append("file",file);
})
}
当处于调试或高度模式查看时,可以观察到后端接收到的数据结构。
<MultiValueDict: {'file': [<InMemoryUploadedFile: wx_friends.png (image/png)>, <InMemoryUploadedFile: wx_qrcode.png (image/png)>, <InMemoryUploadedFile: wx_wechat.png (image/png)>]}>
若使用imgs = request.FILES.get('file')进行获取,结果只能得到单个文件对象。
这是因为Django默认机制仅处理单个文件上传。若要一次性批量处理多个文件,必须采用特定的获取方式。MultiValueDict是一种特殊定义的字典类,从中提取列表数据需要调用getlist方法。
因此,获取图片列表的正确代码写法如下。
request.FILES.getlist('file')
通过上述方式获取到的结果即为InMemoryUploadedFile类的列表,后续可根据具体业务需求对该列表进行相应处理。
以上关于Django后台获取文件列表InMemoryUploadedFile的示例内容到此结束,希望能为读者提供参考,并欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













