플레인 텍스트
.txt 생성하는 방법
파일 한개짜리 : 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) |