网站地图    收藏   

主页 > php专栏 > php上传下载 >

Tornado文件图片上传例子

来源:未知    时间:2014-11-27 23:53 作者:xxadmin 阅读:

[导读] Tornado是一个和php有点像但又有不同的服务器脚本了,Tornado优点是它是非阻塞式服务器,而且速度相当快,下面来看个文件上传例子. 文件上传的内容体在tornado.web.RequestHandler.request.files属性...

Tornado是一个和php有点像但又有不同的服务器脚本了,Tornado优点是它是非阻塞式服务器,而且速度相当快,下面来看个文件上传例子.

文件上传的内容体在tornado.web.RequestHandler.request.files属性中,并且是以数组形式存放的,使用临时文件存储时,在write完成后要记着把seek重置到文件头,要不然文件无法被读取.

再使用Image模块的thumbnail方法进行缩放时,resample=1作为重载渲染参数能够有效的使图片平滑,消除锯齿,代码如下:

  1. if self.request.files: 
  2.     for f in self.request.files['postfile']: 
  3.         rawname = f['filename'
  4.         dstname = str(int(time.time()))+'.'+rawname.split('.').pop() 
  5.         thbname = "thumb_"+dstname 
  6.         # write a file 
  7.         # src = "./static/upload/src/"+dstname 
  8.         # file(src,'w+').write(f['body']) 
  9.         tf = tempfile.NamedTemporaryFile() 
  10.         tf.write(f['body']) 
  11.         tf.seek(0) 
  12.         # create normal file 
  13.         # img = Image.open(src) 
  14.         img = Image.open(tf.name) 
  15.         img.thumbnail((920,920),resample=1) 
  16.         img.save("./static/upload/postfiles/"+dstname) 
  17.         # create thumb file//开源软件:phpfensi.com 
  18.         img.thumbnail((100,100),resample=1) 
  19.         img.save("./static/upload/postfiles/"+thbname) 
  20.        tf.close()
  21.  

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论