uploadify官网我们需要到官网上下载需要的插件引入到项目中,同时我们最好看看uploadify的中文文档,当然直接把下面的代码复制作为一个工具类也行,反正都是大同小异.

如何实现图片上传功能?
在实际应用中我们会经常遇到实名认证的功能需要上传正反面照片或者上传文件之类的,如下图

首先简单介绍一下uploadify原理

了解:
以**.swf结尾的就是flash文件或者程序,它必须在flash player上才能运行(类似.class**文件是字节码文件,它是不能直接运行的必须在JVM上才能运行)
为什么使用flash 实现文件上传?
因为flash 是一个程序可以直接开启和后台的连接,我们通过这个连接提交文件到后台

可以这么理解:
1.浏览器里嵌入一个flash player,
2.flash player里运行一个flash程序 /xxxx/uploadify.swf,
3./xxxx/uploadify.swf 这个程序单独开启一个后台连接,把我们的文件从前台传到后台

执行流程: js先发出上传命令,js对象就是uploadify.swf对外的接口,我们只需操作js,js对象就会告诉uploadify.swf程序我们需要上传了,我们实现文件上传主要是通过uploadify对外提供的js对象,uploadify.swf是flash程序 ,它必须在flash player上才能运行.

####现在我们开始实现文件上传的操作

######1.首先引入uploadify的插件
jquery.uploadify.js
jquery.uploadify.min.js 是uploadify.swf提供我们操作uploadify.swf 的js对象
uploadify.swf 做上传的flash程序
uploadify-cancel.png 取消上传的图片

######2.先看官网给我们的Basic Demo


$(function() {$("#file_upload_1").uploadify({height    : 30,swf       : '/uploadify/uploadify.swf',uploader  : '/uploadify/uploadify.php',width     : 120});
});

height : 30, width : 120–> 按钮的高和宽,

swf : ‘/uploadify/uploadify.swf’–>uploadify/对应的flash程序的地址 ,

uploader : ‘/uploadify/uploadify.php’ -->指向的是后台地址,处理文件上传

3.根据Demo我们在前台界面引入 jquery.uploadify.min.js

4.点击上传按钮
$("#uploadBtn1").uploadify({swf : "/js/plugins/uploadify/uploadify.swf",uploader : "/realAuthImageUpload",fileObjName : "image",buttonText    : "上传正面照片",fileTypeExts  : "*.jpg;*.png;*.gif;*.jpeg",multi      : false,overrideEvents:['onUploadSuccess','onSelect'],onUploadSuccess:function(file,data){$("#uploadImg1").attr("src",data);$("#uploadImage1").val(data);}});

swf :flash程序地址
uploader:处理文件上传的后台地址,
fileObjName:上传文件名
buttonText:选择上传文件按钮文字
fileTypeExts:上传文件的类型
multi :是否可以多选
overrideEvents:重写事件
onUploadSuccess:上传成功回调函数(回显图片)
onSelect:选择文件后向队列中添加每个上传任务时都会触发(这里是重写这个方法的空方法 覆盖原有的方法不显示上传进度之类的)
######5.处理后台业务
处理文件上传的后台地址uploader : "/realAuthImageUpload"
先在pom.xml中添加依赖

 <dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.2</version></dependency>

 /*** 实名认证图片上传** @param image* @return 文件名*/@RequestMapping("realAuthImageUpload")@ResponseBodypublic String realAuthImageUpload(MultipartFile image) {logger.info("^^^^^^^^^^^处理文件上传^^^^^^^^^^^");String fileName = UploadUtil.upload(image, "/Users/zhangshuai/Desktop/p2p/upload");return fileName;}

UploadUtil.java 上传文件工具类

import java.io.File;
import java.io.IOException;
import java.util.UUID;import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;/*** 上传工具* Created by zhangshuai on 2017/10/7.*/
public class UploadUtil {/*** 处理文件上传** @param file 要上传的文件* @param basePath 上传地址* @return*/public static String upload(MultipartFile file, String basePath) {String orgFileName = file.getOriginalFilename();//uuid+原文件的后缀 --->作为新文件的fileName// FilenameUtils.getExtension(orgFileName)-->org.apache.commons.io.FilenameUtilsString fileName = UUID.randomUUID().toString() + "." + FilenameUtils.getExtension(orgFileName);try {//(传入文件地址,文件名)创建新文件File targetFile = new File(basePath, fileName);//开始读写文件FileUtils-->org.apache.commons.io.FileUtilsFileUtils.writeByteArrayToFile(targetFile, file.getBytes());} catch (IOException e) {e.printStackTrace();}return fileName;}
}

6.需要在配置文件中配置相关属性

application-website.properties

#文件上传配置
spring.http.multipart.maxFileSize=2MB
spring.http.multipart.maxRequestSize=10MB
#自动加载静态资源的地址
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:/Users/zhangshuai/Desktop/p2p/upload 


6.图片回显后将值设置给uploadImage1

onUploadSuccess:function(file,data){$("#uploadImg1").attr("src",data);$("#uploadImage1").val(data);
}

总结: 这是基于Spring boot的文件上传,在这里我们配置的上传图片的静态资源都是保存在本地,在我们的实际项目中这些静态资源都会交给nginx处理,更多的是我们图片这样的信息都存储在阿里云服务器上,这样我们的应用只处理动态的请求

uploadify 实现文件上传相关推荐

  1. uploadify多文件上传插件

    这个插件是兼容IE8及以上版本的,实现了基本功能,底部有下载连接 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transiti ...

  2. Struts2 + uploadify 多文件上传完整的例子!

    首先,我这里使用的是  Jquery  Uploadify3.2版本号  导入相关的CSS  JS    <link rel="stylesheet" type=" ...

  3. jquery文件上传插件 uploadify java_jQuery文件上传插件Uploadify使用指南

    对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持 Flash,主要特性:支持多文件上传.HTML5版本可拖拽上传.实时上传进度条显示.强大的参数 定制功能,如文件大小. ...

  4. jquery uploadify 多文件上传插件 使用经验

    2019独角兽企业重金招聘Python工程师标准>>> Uploadify 官网:http://www.uploadify.com/ 一.如何使用呢? 官网原文:http://www ...

  5. uploadify java 下载_java uploadify 实现文件上传

    1.web端使用uploadify插件 下载地址:http://www.uploadify.com/wp-content/uploads/files/uploadify.zip web页面代码: 导入 ...

  6. python实现文件上传功能_python实现上传下载文件功能

    最近刚学python,遇到上传下载文件功能需求,记录下! django web项目,前端上传控件用的是uploadify. 文件上传 - 后台view 的 Python代码如下: @csrf_exem ...

  7. python 文件上传下载,python实现上传下载文件功能

    最近刚学python,遇到上传下载文件功能需求,记录下! django web项目,前端上传控件用的是uploadify. 文件上传 - 后台view 的 Python代码如下: @csrf_exem ...

  8. 在EasyUI项目中使用FileBox控件实现文件上传处理

    我在较早之前的随笔<基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用>Web框架介绍中介绍了基于Uploadify的文件上传操作,免费版本用的是J ...

  9. jquery文件上传控件 Uploadify

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...

  10. DWZ+Uploadify +JSON 多文件上传

    DWZ+Uploadify +JSON 多文件上传 转载于:https://www.cnblogs.com/zhujiabin/p/5089577.html

最新文章

  1. HJ12 字符串反转
  2. 目标检测方法系列——R-CNN, SPP, Fast R-CNN, Faster R-CNN, YOLO, SSD
  3. [css] 行内css和important哪个优先级高?
  4. SendMessage、PostMessage原理和源代码详解
  5. 深入理解并行编程-分割和同步设计(五)
  6. js 创建file对象_JS 之创建对象
  7. python下读sougou中文语料文件
  8. php无法加载ssh扩展,php的ssh2扩展正常安装,却无法连接目标主机
  9. 如何关闭迅雷频繁自动弹出更新到新版本的提示
  10. 【QQ空间批量下载高清照片问题】
  11. 2019年美国大学生数学建模注意事项(摘https://www.comap.com/undergraduate/contests/)(重点:论文提交方式)
  12. ADC0804工作原理及过程
  13. FILecoin 将重大战略升级,FIL 或将引导商业数据
  14. 安装zstack云平台并搭建云主机
  15. flink 简单上手
  16. 安卓手机运行ios教程_英雄联盟手游公测,安卓/苹果iOS注册下载教程!
  17. Docker 18.09.0更换阿里镜像加速器
  18. Auto.js Pro安卓免ROOT引流脚本开发系列教程27网易公开课(5)-UI界面构建
  19. 山东大学移动信息门户03
  20. ellipse 标签

热门文章

  1. c语言队列ADT 学习总结
  2. 用PS去除图片中文字的6个方法
  3. 精密电阻选购及换算方法
  4. FP-XH 松下PLC控制器资料下载
  5. 网络安全笔记(一)网络安全设备
  6. 【620】【信息管理学基础】【真题背诵】
  7. 数据仓库与数据挖掘概述
  8. Jensen不等式及其扩展
  9. 在Keil5中创建MM32工程
  10. 服务器如何用pe系统安装,pe下安装服务器系统安装教程