Men Python va CGI bilan kichik veb-saytni kodlayapman, u erda foydalanuvchilar zip fayllarni yuklashlari va boshqa foydalanuvchilar tomonidan yuklangan fayllarni yuklab olishlari mumkin. Hozirda men zip-ni to'g'ri yuklay olaman, lekin foydalanuvchiga fayllarni to'g'ri yuborishda muammolarga duch keldim. Mening birinchi yondashuvim:
file = open('../../data/code/' + filename + '.zip','rb')
print("Content-type: application/octet-stream")
print("Content-Disposition: filename=%s.zip" %(filename))
print(file.read())
file.close()
Ammo tez orada men faylni ikkilik sifatida yuborishim kerakligini angladim, shuning uchun men harakat qildim:
print("Content-type: application/octet-stream")
print("Content-Disposition: filename=%s.zip" %(filename))
print('Content-transfer-encoding: base64\r')
print( base64.b64encode(file.read()).decode(encoding='UTF-8') )
Va uning turli xil variantlari. Bu shunchaki ishlamaydi; Apache "skriptdan noto'g'ri shakllangan sarlavha" xatosini ko'taradi, shuning uchun faylni boshqa yo'l bilan kodlashim kerak deb o'ylayman.