Axure教程:如何实现图片上传-自动预览

编辑导语:很多APP都有图片上传然后自动预览功能 , 那么如何用Axure教程实现这个功能呢?本文作者通过实际操作 , 为我们展示了整个流程 , 并且总结了四个步骤 , 希望看后能够对你有所帮助 。
Axure教程:如何实现图片上传-自动预览文章插图
上一篇文章讲述了定制化上传元件的视觉效果 , 其实在制作过程中 , 我曾经碰到过一个问题 , 那就是“试图读取文件路径时 , 发现文件路径被替换为C:/fakepath/****.jpg” 。
——这是由于浏览器的安全机制 , input file的路径时被fakepath代替 , 隐藏了真实物理路径 。
Axure通常是用来做原型演示的 , 所以离线本地运行的情况比较多 。
当我们想要在HTML里面尝试要做本地图片预览 , 远古时期的做法是用类似“href=http://kandian.youth.cn/index/”file:///C:/Users/***.jpg””直接加载来解决 , 但是现在行不通了 , 需要一个新的办法 , 所以今天我们制作一个模拟图片上传的原型 。
在开始制作前 , 你可以看一下效果预览:#id=cpnfyk&p=upload
Axure教程:如何实现图片上传-自动预览文章插图
一、第一步:放置元件首先在页面上放置3个元件:1个文本框 , 2个矩形 。
Axure教程:如何实现图片上传-自动预览文章插图
文本框记得设置输入类型为“文件”:
Axure教程:如何实现图片上传-自动预览文章插图
中间大的矩形选张图片作为填充背景:
Axure教程:如何实现图片上传-自动预览文章插图
二、第二步:设置ID给这3个元件设定ID , 分别是:fileChose、changeIMG、fileTypeField 。
Axure教程:如何实现图片上传-自动预览文章插图
三、第三步:添加交互动作1. fileChose , 文本框主要脚本代码写在了这个元件上 , 通过Javascript模拟了文件选择动作 。 选中文本框以后 , 添加一个“隐藏”交互动作 , 当隐藏时 , 打开链接到URL , 然后把javascript代码贴进去 。
Axure教程:如何实现图片上传-自动预览文章插图
上一个教程的时候也有朋友问我 , 这里执行JS脚本为什么用隐藏的交互 , 而不是直接“载入时” 。
主要是考虑复制元件使用时 , JS会有冲突 , 所以通过主按钮做了一个刷新 , 具体的我在下一篇文章做扩展应用时会用到 , 你也可以暂时做成“载入时”交互 。
这里加了一个在文件加载前识别常规图片格式的判断 , 如果不是PNG等 , 会停止加载并弹警告 。
大家最喜欢的拷贝代码环节:
Axure教程:如何实现图片上传-自动预览文章插图
*前面提到浏览器安全限制 , 无法直接访问本地文件 , 所以这里是通过以下这段代码解决的:
Axure教程:如何实现图片上传-自动预览文章插图
原理就是将文件读取为 DataURL , 一段以 data: 开头的字符串 。 DataURL是一种将图像与 html 等格式的小文件直接嵌入文档的方案 , 这个玩法估计前端开发的同学会比较熟 。
2. changeIMG , 矩形记得确认设置了矩形的填充为图片 。 添加一个单击动作 , 填入代码:
同时设定移入移出的交互 , 切换fileChose文本框的隐藏状态 , 以便根据交互动作重载JS脚本 。
Axure教程:如何实现图片上传-自动预览文章插图