Django中实现点击图片链接强制直接下载的方法

yipeiwu_com5年前Python基础

本文实例讲述了Django中实现点击图片链接强制直接下载的方法。分享给大家供大家参考。具体分析如下:

当用户点击图片连接时,默认为在浏览器中直接开打图片,这段代码可以让图片链接变成下载

这段代码也非常适合下载大文件,基本不会消耗内存,每次只读取一部分数据到内存,然后提供下载

def Download(request):
  def readFile(fn, buf_size=262144):
    f = open(fn, "rb")
    while True:
      c = f.read(buf_size)
      if c:
        yield c
      else:
        break
    f.close()
  filename = '/usr/local/1.jpg'
  try:
    response = HttpResponse(readFile(file),mimetype='application/octet-stream')
    response['Content-Disposition'] = 'attachment; filename=%s' %'附件'
  except:
    response = HttpResponse('')
  return response

希望本文所述对大家的Python程序设计有所帮助。

相关文章

python读写json文件的简单实现

python读写json文件的简单实现

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类...

python 打印对象的所有属性值的方法

如下所示: def prn_obj(obj): print '\n'.join(['%s:%s' % item for item in obj.__dict__.items()...

python3 shelve模块的详解

python3 shelve模块的详解 一、简介   在python3中我们使用json或者pickle持久化数据,能dump多次,但只能load一次,因为先前的数据已经被后面dump的...

python使用pipeline批量读写redis的方法

用了很久的redis了。随着业务的要求越来越高。对redis的读写速度要求也越来越高。正好最近有个需求(需要在秒级取值1000+的数据),如果对于传统的单词取值,循环取值,消耗实在是大,...

Mac中升级Python2.7到Python3.5步骤详解

下载Python3.5 for Mac 一步步安装 安装的默认路径是: /Library/Frameworks/Python.framework/Versions/3.5/ 强烈建议不要...