返回顶部
首页 > 资讯 > 后端开发 > Python >Python的Tornado框架实现图片上传及图片大小修改功能
  • 379
分享到

Python的Tornado框架实现图片上传及图片大小修改功能

图片大小图片上传框架 2022-06-04 18:06:12 379人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

图片的上传 上传图片使用了表单提交, 下面是html部分, enctype="multipart/fORM-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 type="file"

图片的上传

上传图片使用了表单提交, 下面是html部分, enctype="multipart/fORM-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 type="file" 指定上传类型.


<form action="/" enctype="multipart/form-data" method="post">
  <input type="file" name="headimg">
</form>

下面是tornado接受文件的部分


class UploadHandler(BaseHandler):
  def post(self):
    # 这部分就是上传的文件,想要查看更多可以print self.request看看
    # 该文件返回一个元素为字典的列表
    imgfile = self.request.files.get('headimg')
    for img in imgfile:
      # img有三个键值对可以通过img.keys()查看
      # 分别是 'filename', 'body', 'content_type' 很明显对应着文件名,内容(二进制)和文件类型
      with open('./static/uploads/' + img['filename'], 'wb') as f:
        # 文件内容保存 到'/static/uploads/{{filename}}'
        f.write(f['body'])

这样就可以通过/static/uploads/文件名的形式访问

对图片大小进行修改

下面将写对图片进行的resize


class UploadHandler(BaseHandler):
  @tornado.WEB.authenticated
  def post(self):
    # 应该写到上面, 为了显示写到了函数内
    import time
    # PIL 是 python中对图片进行操作的模块, 感兴趣可以去看一下
    from PIL import Image
    # 可以想文件一样使用, 只是存放在内存
    from cStringIO import StringIO

    # 判断上传文件大小
    size = int(self.request.headers.get('Content-Length'))
    if size / 1000.0 > 2000:
      self.write("上传图片不能大于2M.")
    imgfile = self.request.files.get('headimg')
    for img in imgfile:
      # 对文件进行重命名
      name = str(time.strftime('%Y%m%d%'), time.localtime())
          + '_' + self.current_user + '_headimg.png'

      with open('./static/uploads/' + name, 'wb') as f:
        # image有多种打开方式,一种是 Image.open('xx.png')
        # 另一种就是 Image.open(StringIO(buffer)) 
        im = Image.open(StringIO(img['body']))
        # 修改图片大小resize接受两个参数, 第一个是宽高的元组数据,第二个是对图片细节的处理,本文表示抗锯齿
        im = im.resize((72, 72), Image.ANTIALIAS)
        # 打开io 就像文件一样
        im_file = StringIO()
        im.save(im_file, format='png')
        # 这是获取io中的内容
        im_data = im_file.getvalue() 
        f.write(im_data)

这样就可以上传的时候对文件大小进行修改

--结束END--

本文标题: Python的Tornado框架实现图片上传及图片大小修改功能

本文链接: https://lsjlt.com/news/14595.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python的Tornado框架实现图片上传及图片大小修改功能
    图片的上传 上传图片使用了表单提交, 下面是html部分, enctype="multipart/form-data"表示不对字节进行编码,上传文件类型时需指定. input标签的 type="file" ...
    99+
    2022-06-04
    图片大小 图片上传 框架
  • java实现上传图片并压缩图片大小功能
    Thumbnailator 是一个优秀的图片处理的Google开源Java类库。处理效果远比Java API的好。从API提供现有的图像文件和图像对象的类中简化了处理过程,两三行代码就能够从现有图片生成处理后的图片,且允许微调图片的生成方式...
    99+
    2023-05-31
    java 上传图片 压缩图片
  • vue使用element实现上传图片和修改图片功能
    目录前言一、应用场景1.上传图片并进行放大预览2.图片上传代码二、修改已经上传的图片,并展示到图片列表中1.效果展示(先展示原来的图片,再上传新图片,也可删除原来的图片)2.编辑代码...
    99+
    2024-04-02
  • vue如何使用element实现上传图片和修改图片功能
    本篇内容主要讲解“vue如何使用element实现上传图片和修改图片功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue如何使用element实现上传图片和修改图片功能”吧!一、应用场景1....
    99+
    2023-07-02
  • php如何修改图片上传大小
    小编给大家分享一下php如何修改图片上传大小,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php修改图片上传大小的方法:1、找到php的配置文件php.ini,然...
    99+
    2023-06-15
  • Android实现图片上传功能
    最近在开发中,涉及到用户的意见反馈功能这一方面的开发,需要用户输入的文字或者提交的图片,效果大概类似于微信朋友圈那样的图片选择器,一开始自己找了个用universal-imag...
    99+
    2022-06-06
    图片上传 图片 Android
  • Django实现上传图片功能
    本文实例为大家分享了Django实现上传图片的具体代码,供大家参考,具体内容如下 1.设置存放上传的图片的文件夹 settings.py MEDIA_ROOT = os.path...
    99+
    2024-04-02
  • Android实现上传图片功能
    本文实例为大家分享了Android实现上传图片功能的具体代码,供大家参考,具体内容如下 设定拍照返回的图片路径 protected void image(String...
    99+
    2024-04-02
  • WebUploader实现图片上传功能
    本文实例为大家分享了WebUploader实现图片上传的具体代码,供大家参考,具体内容如下 描述:springmvc 在jsp页面实现 WebUploader插件上传图片, 上传到 ...
    99+
    2024-04-02
  • js实现上传图片功能
    前端上传图片的原理是:运用input type=“file”的标签获取图片,再使用FileReader这个对象 new 一个实例,通过这个对象的readAsDataURL()方法读取...
    99+
    2024-04-02
  • uniapp小程序上传图片功能的实现
    目录前言正文1、首先看官网2、案例代码演示前言 本篇文章我们研究一下,在移动端开发过程中经常使用到的图片上传功能。在大多数小程序或者APP中都会遇到一些实名认证或者头像上传的功能。u...
    99+
    2023-01-10
    uniapp小程序 上传图片 uniapp小程序 上传 uniapp上传图片
  • vue.js如何实现图片上传预览及图片更换功能
    这篇文章将为大家详细讲解有关vue.js如何实现图片上传预览及图片更换功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。效果图:样式以及效果图一并展示1.HTML<...
    99+
    2024-04-02
  • 微信小程序实现上传图片小功能
    本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下 用到的apiwx.chooseMedia(); 用于拍摄或从手机相册中选择图片或视频 功能:点击上传图...
    99+
    2024-04-02
  • 微信小程序实现图片上传功能
    微信小程序实现图片上传功能随着移动互联网的发展,微信小程序已经成为了人们生活中不可或缺的一部分。微信小程序不仅提供了丰富的应用场景,还支持开发者自定义功能,其中包括图片上传功能。本文将介绍如何在微信小程序中实现图片上传功能,并提供具体的代码...
    99+
    2023-11-21
    微信小程序 图片上传 功能实现
  • 基于jquery实现的上传图片及图片大小验证、图片预览效果代码
    jquery实现上传图片及图片大小验证、图片预览效果代码 上传图片验证 复制代码 代码如下: */ function submit_upload_picture(){ var fil...
    99+
    2022-11-21
    上传图片 图片大小验证 预览
  • 微信小程序实现上传图片的功能
    本文实例为大家分享了微信小程序实现上传图片的具体代码,供大家参考,具体内容如下 效果图 WXML <view class="img-wrap"> <vie...
    99+
    2024-04-02
  • android实现图片上传功能(springMvc)
    本文实例为大家分享了Android图片上传的具体代码,供大家参考,具体内容如下 Android端: String fileName = tvFilename.getText(...
    99+
    2022-06-06
    图片上传 图片 Android
  • vue+ bootstrap如何实现图片上传图片展示功能
    这篇文章给大家分享的是有关vue+ bootstrap如何实现图片上传图片展示功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图如下所示:html..... ..........
    99+
    2024-04-02
  • thinkphp5加layui实现图片上传功能(带图片预览)
    目录1、引入文件2、HTML部分3、功能实现4、后台处理图片上传保存内容网站中很多表单都会用到上传图片,logo,照片,用户也会上传图片,这个时候网站就需要一个上传图片的功能,而且在...
    99+
    2023-03-11
    thinkphp5加layui实现图片上传功能 layui图片上传 thinkphp5图片上传
  • html5实现拖拽上传图片功能
    这篇文章主要讲解了“html5实现拖拽上传图片功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“html5实现拖拽上传图片功能”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作