def export_game_data(request): """ Export game world files. """ response = http.HttpResponseNotModified() file_type = request.GET.get("file_type", None) # get data's zip zipfile = None try: zipfile = tempfile.TemporaryFile() exporter.export_zip_all(zipfile, file_type) zipfile.seek(0) filename = time.strftime("worlddata_%Y%m%d_%H%M%S.zip", time.localtime()) response = http.StreamingHttpResponse(file_iterator(zipfile)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % filename except Exception, e: message = "Can't export game data: %s" % e logger.log_tracemsg(message) zipfile.close() return render(request, 'fail.html', {"message": message})
def export_file(request): """ Export game world files. """ def file_iterator(file, chunk_size=512): while True: c = file.read(chunk_size) if c: yield c else: # remove temp file file.close() break response = http.HttpResponseNotModified() # get data's zip try: zipfile = tempfile.TemporaryFile() exporter.export_zip_all(zipfile) zipfile.seek(0) filename = time.strftime("worlddata_%Y%m%d_%H%M%S.zip", time.localtime()) response = http.StreamingHttpResponse(file_iterator(zipfile)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="%s"' % filename except Exception, e: zipfile.close() message = "Can't export world: %s" % e logger.log_tracemsg(message) return render(request, 'fail.html', {"message": message})
def export_file(request): """ Export game world files. """ def file_iterator(file_name, chunk_size=512): with open(file_name) as f: while True: c = f.read(chunk_size) if c: yield c else: # remove temp file os.remove(file_name) break # get data's zip zipfile_name = tempfile.mktemp() exporter.export_zip_all(zipfile_name) response = http.StreamingHttpResponse(file_iterator(zipfile_name)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="worlddata.zip"' return response