博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何正确上传一张图片?
阅读量:6575 次
发布时间:2019-06-24

本文共 987 字,大约阅读时间需要 3 分钟。

图片上传在现在的应用开发中可谓是家常便饭,基本上每个应用都会涉及到。小到头像图标,大到社交照片等等。对于传统的Web应用来说,图片上传可以说是一个很微不足道的需求了,只是这样的一个小需求,想要做到极致,却并非易事。

需求多变

你可能会觉得就是简单的文件上传还需要什么需求呢?对于图片上传来说,从业务层面来说要涉及到的技术点很多。比如图片大小的限制,图片格式的限制,上传后是否需要压缩图片。特别是当你图片的上传量大了之后,通过怎样的方式来管理这么多的图片资源。而这些都是我们开发中需要考虑的点。

用户体验

用户体验这一块可谓是仁者见仁智者见智,但是不外乎的几个方面都一样。 重中之重的就是上传进度的显示,其实在于产品的设计过程中,如果没有进度显示用户心中会有焦虑感。当他无法感知到上传进度的时候,用户的流失率就会提高。 还有一个就是上传时的缩略图预览,你要让用户知道他现在选择的是那一张图,有没有选择到了不可描述的图片,而这个在提升用户对产品的认可度上大有裨益。 最后一个对于已上传图片的删除与位置拖动,其实这个需求在用户体验上来说主要还是要根据具体的业务,如果是后台的应用那就完全没有必要了;而如果是社交分享类的,那就可以说是重中之重了。

容错处理

一份良好健壮的代码,对于错误的处理和提示不亚于用户体验。当用户在上传出问题的时候却没有相应的提示,想想看这时候他的心里会是怎样的。

对于错误处理要包括图片太大,图片格式不正确以及上传数量超限制。对于服务端的错误也要给出相应的提示,这样才算是一个完整的图片上传组件。

支持并发

其实这一块并不能算作图片上传中的一部分,但还是值得来讲一下。传统Web应用中,图片都是传到服务端直接存储,这样如果上传量大的话,服务器的带宽和磁盘就成了瓶颈,这时或许会提高带宽上SSD等。但是在云时代,或许选择云存储是个更好的选择。传统架构都是都是先传到服务器然后再从服务器到云存储,这样瓶颈依旧是在服务器。其实我们完全可以直传到云存储,把压力转接到专业的人来做,我们专注于业务即可。

对于一个简单的图片上传其实还是有很多的知识点在里面,前些日子花了点时间开源了一个这样的Laravel组件,支持直传图片到第三方云存储,使用起来非常方便,欢迎Star。

https://github.com/wh469012917/laravel-uploader

转载地址:http://aogjo.baihongyu.com/

你可能感兴趣的文章
MapReduce(十六): 写数据到HDFS的源代码分析
查看>>
leetcode第一刷_Reverse Linked List II
查看>>
EF6+Sqlite连接字符串的动态设置
查看>>
android动画-拖动
查看>>
Hive总结(五)hive日志
查看>>
PHP批量去除bom头代码的小工具
查看>>
【计算机视觉】基于Kalman滤波器的进行物体的跟踪
查看>>
《快学Scala》第三章 数组相关操作
查看>>
python编程练习
查看>>
pandas 索引与列相互转化
查看>>
从100PV到1亿级PV站点架构演变
查看>>
Windows 7 x64环境下JDK8安装过程
查看>>
Intent调用系统拍照程序,返回图片太小的问题
查看>>
FineUIMvc v1.4.0 发布了(ASP.NET MVC控件库)!
查看>>
会动的Tabbar
查看>>
完全卸载VS2013的方法
查看>>
十分钟学会Charles抓包(iOS的http/https请求)
查看>>
zoj2676 Network Wars(0-1分数规划,最大流模板)
查看>>
存储器的保护(三)——《x86汇编语言:从实模式到保护模式》读书笔记20
查看>>
Datatables js 复杂表头 合并单元格
查看>>