def download(request): if login_check(request) == 1: if request.method == 'POST': phonenum = request.session['phone'] getid = getcookie(request) if (getid == -1): retu = {'code': 2} return JsonResponse(retu) try: getwater = watermark.objects.get(pk=getid) baseDir = os.path.dirname(os.path.abspath(__name__)) # 获取运行路径 syspath = getwater.syspath wjdir = os.path.join(baseDir, "watermarksys", syspath) file = open(wjdir, 'rb') respon = FileResponse(file) respon['Content-Type'] = 'application/octet-stream' respon[ 'Content-Disposition'] = 'attachment; filename=' + getwater.filename respon.set_cookie('id', getid) return respon except: retu = {'code': 0} return JsonResponse(retu) else: return HttpResponseRedirect("/watermarksys")
def index(request): resp = FileResponse(open(os.getcwd() + '/bot/frontend/index.html', 'rb')) cookies = request.COOKIES if ('id' not in cookies): resp.set_cookie('id', generate_random_string()) print cookies return resp
def stream_as_file(self, schema, **extra_params): file_object = self.write_schema_to_file_object(schema, six.BytesIO()) response = FileResponse(file_object, status=status.HTTP_200_OK) filename = urllib.parse.quote(schema['filename'].encode('utf-8')) # NOTE: Gory details http://greenbytes.de/tech/tc2231/ filename_fallback = u'filename*=UTF-8\'\'{}'.format(filename) response[ 'Content-Disposition'] = u'attachment; filename="{}"; {}'.format( filename, filename_fallback) response['Content-Type'] = u'application/vnd.ms-excel' cookie = (extra_params.get('cookie') or self.request.data.get('cookie')) if cookie: response.set_cookie(cookie, 'true') return response
def download(*args, **kwargs): result = download_to_file.AsyncResult(args[0]['uuid']) state = result.state if state == states.PENDING: raise QueryExpired() elif state in states.EXCEPTION_STATES: result.maybe_reraise() info = result.wait() response = FileResponse(open(info['file_path'], 'rb'), content_type=FORMAT_TO_CONTENT_TYPE.get('csv', 'application/octet-stream')) response['Content-Disposition'] = 'attachment; filename="%s.%s"' % (args[0]['uuid'], 'csv') #TODO: Add support for 3rd party (e.g. nginx file serving) response.set_cookie( 'download-%s' % args[1]['id'], json.dumps({ 'truncated': info.get('truncated', False), 'row_counter': info.get('row_counter', 0) }), max_age=DOWNLOAD_COOKIE_AGE ) return response