플레인 텍스트





파일 한개짜리 : io.BytesIO 에서 생성



fileName = "createNewText.txt"

buffer = io.BytesIO(  )
buffer.write(b'abc')
buffer.write(b'\nabc')
buffer.write(  bytes( ('\n' + str(now) ) , encoding='utf-8') )
buffer.write(  bytes( ('\n' + '한글지원하나요' ) , encoding='utf-8') )
buffer.write(  bytes( ('\n' + 'あ' ) , encoding='utf-8') )
buffer.write(  bytes( ('\n' + '日本語できますか' ) , encoding='utf-8') )

response = HttpResponse(buffer.getvalue())
response['content_type'] = 'application/text'
response['Content-Disposition'] = f'attachment; filename={fileName}'

return response


복수의 파일 생성 : zipfile 에서 생성



buffer = io.BytesIO()

new_zip = zipfile.ZipFile(buffer, 'w', compression=zipfile.ZIP_DEFLATED)
new_zip.writestr(("" + convertURLunquote('age') + ".txt"), convertURLunquote('nation'))
new_zip.close()

b64_zip = base64.b64encode(buffer.getvalue()).decode()

fileName = titleName + ".zip"
html_zip += f'<br/><a href="data:file/zip;base64,{b64_zip}". download="{fileName}">{fileName}</a>'
result = {}
result.update({'downloadLink': html_zip })
return JsonResponse(result)