Django休息框架上传多个文件

Han*_*nXu 5 django django-rest-framework

我正在使用django-rest-framework.

有没有办法处理多个文件上传?似乎即使客户端发送多个文件(通过Web浏览器),MultiPartParser也只会选择第一个文件.

小智 2

如果您打算验证多个上传的文件,那么您将必须为此编写自己的序列化程序。有一个用于验证对象列表的serializers.ListField 。我还没有尝试过这个,但我相信你可以实现一个简单的序列化器,如下所示:

class FileListSerializer ( serializers.Serializer ) :

    files = serializers.ListField(
                child=serializers.FileField( max_length=100000,
                                             allow_empty_file=False,
                                             use_url=False )
            )
Run Code Online (Sandbox Code Playgroud)

然后,您可能可以通过从视图调用序列化器来验证文件:

files = list( request.FILES.values() )
files_serializer = FileListSerializer( data={"files": files} )
if not file_serializer.is_valid() :
    # handle error
    ...
Run Code Online (Sandbox Code Playgroud)

  • 这不起作用...我已经尝试过,但文件在现场验证中丢失了。 (2认同)