Django后台批量获取InMemoryUploadedFile文件列表的方法

不晚
不晚
发布时间:2026-10-13 | 6人浏览过
原创

本文介绍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的示例内容到此结束,希望能为读者提供参考,并欢迎大家继续支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表