如何解决是否可以使用来自 post 请求的 python (Django) 中的 zipFile 将任何文件写入 zip 文件获取错误
场景:
我正在尝试压缩来自发布请求的所有传入文件,并将其存储在一个目录中。
我的方法
import zipfile
class UploadView(viewsets.ViewSet):
parser_classes = (parsers.FormParser,parsers.MultiPartParser)
def create(self,request):
serializer = UploadSerializer(data=request.data)
unique_number= request.data.get('unique_number')
if 'document_details' not in request.FILES or not serializer.is_valid():
return Response(status=status.HTTP_400_BAD_REQUEST)
else:
v_files = request.FILES.getlist('document_details')
handle_uploaded_file(v_files,f'{unique_number}.zip','uploads')
return Response(status=status.HTTP_201_CREATED)
def handle_uploaded_file(f,filename,folderName):
print(f) #print ===> [<InMemoryUploadedFile: sample.xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)>,......]
with zipfile.ZipFile(filename,'w',compression=zipfile.ZIP_DEFLATED) as zipF:
for _file in f:
print(_file) # prints ==> sample.xlsx
print(_file.read()) # prints ==> b'px\x03\x04\x14\x00\x06\x....\x03\x04\x14\x00\x06\x'
zipF.write(_file)
它向我抛出以下错误。
TypeError: stat: path should be string,bytes,os.pathLike or integer,not InMemoryUploadedFile
我也尝试过
zipF.write(_file.read())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。