作家
登录

Android用Retrofit 2实现多文件上传实战

作者: 来源: 2017-04-21 09:24:36 阅读 我要评论

前一段时光我翻译了Future Studio的Retrofit2教程,大年夜中也进修到了一些Retrofit2的应用办法,如不雅你比来也计算入手进修,我博客上Retrofit教程,你也许可以参考下:Retrofit教程 。

本文作为阶段性小结,将应用结合Python中的Flask框架实现Android端多文件上传功能。如不雅读者没有应用过Python中的Flask也没有关系,可以只看Android客户端部分,毕竟客户端工程师只应用API也是可以的。

1.实验效不雅

如不雅没有接触过Retrofit 2,可以来我的博客Retrofit教程 懂得。

Android端操作截图

Android端操作截图

Server端接收到的图片

Server端接收到的图片

2. Server端拭魅战

Server端负责接收保存客户端上传来的图片并供给拜访图片的才能,Server有很多技巧可以实现,Python作为一门具有强大年夜的第三方库的说话,拥有很多web办事框架,如Flask,Django等。笔者采取Flask框架,Flask是微框架,实现小型功能十分便利,笔者实现的多文件上传功能,法度榜样不跨越30行。

界面构造如图所示:

2.1 情况安装

笔者应用的Python版本为3.4,可以去 Python3.4下载 选择下载合适本身体系的版本。完全安装Python教程请自行搜刮。

Python安装完成后须要安装Server端法度榜样依附库。经由过程pip安装:

  1. pip install Flask 
  2. pip install werkzeug  

3.1 添加依附库

2.2 法度榜样实现

起重要惹人依附库:

  1. from flask import Flask,request,send_from_directory,jsonify 
  2. import os 
  3. from werkzeug import secure_filename  

本实验须要上传文件,须要将所上传文件的文件类型以及文件名做出限制,防止某些破坏办事器的法度榜样运行,别的有些不法文件名如:

filename = "../../../../home/username/.bashrc"

如不雅黑客们可以或许操作如许的文件,对办事器体系来说,将是致命袭击。所以werkzeug供给了secure_filename对上传文件的文件名进行合法校验。

断定文件后缀是否合法

  1. ALLOWED_EXTENSIONS=set(['png','jpg','jpeg','gif']) 
  2. def allowed_file(filename): 
  3. return '.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS  

接收上传文件的函数代码如下:

  1. @app.route('/upload',methods=['POST']) 
  2. def upload_file(): 
  3. if request.method=='POST'
  4. for k in request.files: 
  5. file = request.files[k] 
  6. image_urls = [] 
  7. if file and allowed_file(file.filename): 
  8. filename=secure_filename(file.filename) 
  9. file.save(os.path.join(app.config['IMAGE_FOLDER'],filename)) 
  10. image_urls.append("images/%s"%filename) 
  11. return jsonify({"code":1,"image_urls":image_urls})  

Flask支撑GET,POST,PUT,DELETE等HTTP请求方法,应用装潢器进行润饰,类似于Java中的注解概念,/upload为客户端请求的相对地址,请求方法限制为POST.根据request内置对象,可以拜访客户端发来的文件,将文件检查后保存在本地,个中image_urls为上传后的图片的相对地址数组。最后将图片的地址以json格局返回给客户端。

 1/5    1 2 3 4 5 下一页 尾页

  推荐阅读

  让你的设计更加高效便捷的5款原型设计工具

它是一款快速原型的设计软件,由美国加利福利亚的Balsamiq工作室推出,它真正抓住了原型设计的核心和均衡点-既能设计草图,又能较好地进入到日常平凡团队工作的流程和对象。它具有极其丰富>>>详细阅读


本文标题:Android用Retrofit 2实现多文件上传实战

地址:http://www.17bianji.com/lsqh/34876.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)