Я отправляю байтовую строку zip-файла с клиентской стороны, используя JSZip
, и его нужно преобразовать обратно в zip на стороне сервера. код, который я пробовал, не работает.Создание zip-файла из байта
b = bytearray()
b.extend(map(ord, request.POST.get("zipFile")))
zipPath = 'uploadFile' + str(uuid.uuid4()) + '.zip'
myzip = zipfile.ZipFile(zipPath, 'w')
with myzip:
myzip.write(b)
Это дает ошибку:
stat: path too long for Windows
Как сохранить мои байты строки в виде архив?
Вы _sure_, что данные, возвращаемые с 'request.POST.get (" zipFile ")', являются zipfile? В частности, это первые 4 байта 'b'PK \ x03 \ x04''? Кроме того, вы должны указать, используете ли вы Python 2 или Python 3 (желательно с помощью соответствующего тега). –
Я использовал 'zip.generateAsync ({type:" base64 "})' метод из 'JSZip', чтобы преобразовать загруженный файл в zip и получить байтовую строку. Должен доверять библиотеке, чтобы все исправить, не так ли? И я использую Python 3 –
Вы, скорее всего, захотите декодировать это с помощью 'binascii.a2b_base64'. –