コード例 #1
0
ファイル: views.py プロジェクト: NSMBGhost/Watermark
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")
コード例 #2
0
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
コード例 #3
0
ファイル: views.py プロジェクト: peopleticker/excelsior-lib
    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
コード例 #4
0
ファイル: tasks.py プロジェクト: lyndonChen/hue
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