官方文档:http://fex.baidu.com/webuploader/getting-started.html

引入Webuploader的css和js文件,下载地址:http://fex.baidu.com/webuploader/download.html

把下载的整个文件夹添加的项目中

<!--引入CSS-->
<link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css"> <!--引入JS-->
<script type="text/javascript" src="webuploader文件夹/webuploader.js"></script>

下面这种方式默认是不能重复上传的 如果要能够重复上传一张图片 需要增加属性 duplicate :true,

    • duplicate {Boolean} [可选] [默认值:undefined]

      去重, 根据文件名字、文件大小和最后修改时间来生成hash Key.

如果要设置只能选择一张图片上传,把pick部分修改成

 pick: {
id:'#filePicker',
multiple: false,
},

简单demo

<div>
<!--dom结构部分-->
<!--用来存放item-->
<div id="filePicker">选择图片</div>
</div> <table class="vehicleImgs">
<tr>
<#list vehicleImg as p>
<td>
<img src="${p!}" alt="预览"/>
<span class="del_img">删除</span>
<input type="hidden" name="vehicleImgs" value="${p!}"/>
</td>
</#list>
</tr>
</table> <script>
var uploadPicsUrl = "../common/o_swfPicsUpload.do";
// 初始化Web Uploader
var uploader = WebUploader.create({ // 选完文件后,是否自动上传。
auto: true, //后台接收的name名
fileVal:"Filedata",
// swf文件路径
swf: '${base}/thirdparty/webuploader/Uploader.swf', // 文件接收服务端。
server: uploadPicsUrl, // 选择文件的按钮。可选。
// 内部根据当前运行是创建,可能是input元素,也可能是flash.
pick: '#filePicker',
        
       //允许重复上传 
       duplicate:true,  // 只允许选择图片文件。
accept: {
title: 'Images',
extensions: 'gif,jpg,jpeg,bmp,png',
mimeTypes: 'image/*'
}
});
// 当有文件添加进来的时候
uploader.on( 'fileQueued', function( file ) {
uploader.upload();
}); // 文件上传过程中创建进度条实时显示。
uploader.on( 'uploadProgress', function( file, percentage ) {
}); // 文件上传成功,response为服务器返回的数据。
uploader.on( 'uploadSuccess', function( file,response ) {
console.log(response);
var imgUrl=response._raw;
var str =$(".vehicleImgs tr").html();
str += "<td >";
str += " <img src="+imgUrl+" alt=\"预览\"/>";
str += " <span class=\"del_img\">删除</span>";
str += " <input type=\"hidden\" name=\"vehicleImgs\" value="+imgUrl+"/>";
str += " </td>"; $(".vehicleImgs tr").html(str); });
// 文件上传失败,显示上传出错。
uploader.on( 'uploadError', function( file ) {
});
/**
* 验证文件格式以及文件大小
*/
uploader.on("error", function (type) {
if (type == "Q_TYPE_DENIED") {
} else if (type == "Q_EXCEED_SIZE_LIMIT") {
} else if (type == "F_EXCEED_SIZE") {
}else {
}
}); // 完成上传完了,成功或者失败,先删除进度条。
uploader.on( 'uploadComplete', function( file ) {
$(".del_img").on('click',function () {
$(this).parent().remove();
})
}); uploader.on( 'all', function( type ) {
if ( type === 'startUpload' ) {
state = 'uploading';
} else if ( type === 'stopUpload' ) {
state = 'paused';
} else if ( type === 'uploadFinished' ) {
state = 'done';
} }); $(".del_img").on('click',function () {
$(this).parent().remove();
})
</script>

如果要只能选择固定格式的文件 修改

mimeTypes 

比如只能word03和07 可以写:
mimeTypes: 'application/msword,application/application/vnd.openxmlformats-officedocument.wordprocessingml.document'

更多MimeTypes数值表 参考:https://www.cnblogs.com/pxblog/p/14454262.html



使用WebUploader进行文件图片上传的更多相关文章

  1. WebUploader文件图片上传插件的使用

    最近在项目中用到了百度的文件图片上传插件WebUploader.分享给大家 需要在http://fex.baidu.com/webuploader/download.html点击打开链接下载WebUp ...

  2. Webuploader 大文件分片上传

    百度Webuploader 大文件分片上传(.net接收)   前阵子要做个大文件上传的功能,找来找去发现Webuploader还不错,关于她的介绍我就不再赘述. 动手前,在园子里找到了一篇不错的分片 ...

  3. 使用WebUploader实现文件批量上传,进度条显示功能

    知识点:利用WebUploader,实现文件批量上传,并且实时显示文件的上传进度 参考官方文档:http://fex.baidu.com/webuploader/ (1)引入三个资源 JS,CSS,S ...

  4. Retrofit 2.0 轻松实现多文件/图片上传/Json字符串/表单

    如果嫌麻烦直接可以用我封装好的库:Novate: https://github.com/Tamicer/Novate 通过对Retrofit2.0的前两篇的基础入门和案例实践,掌握了怎么样使用Retr ...

  5. TP5.0整合webuploader实现多图片上传功能

    在https://github.com/fex-team/webuploader 下载webuploader并解压,解压后放到public里面.其中我把解压缩后的文件夹改名为webuploader,放 ...

  6. [iOS AFNetworking框架实现HTTP请求、多文件图片上传下载]

    简单的JSON的HTTP传输就不说了,看一个简单的DEMO吧. 主要明白parameters是所填参数,类型是字典型.我把这部分代码封装起来了,以便多次调用.也许写在一起更清楚点. #pragma m ...

  7. WebApi2 文件图片上传下载

    Asp.Net Framework webapi2 文件上传与下载 前端界面采用Ajax的方式执行 一.项目结构 1.App_Start配置了跨域访问,以免请求时候因跨域问题不能提交.具体的跨域配置方 ...

  8. Vue2.0结合webuploader实现文件分片上传

    Vue项目中遇到了大文件分片上传的问题,之前用过webuploader,索性就把Vue2.0与webuploader结合起来使用,封装了一个vue的上传组件,使用起来也比较舒爽. 上传就上传吧,为什么 ...

  9. 关于富文本编辑器—UEditor(java版)的使用,以及如何将UEditor的文件/图片上传路径改成绝对路径

    突然发现好久没写博客了,感觉变懒了,是要让自己养成经常写文章的习惯才行.既可以分享自己的所学,和所想,和大家一起讨论,发现自己的不足的问题. 大家可能经常会用到富文本编辑器,今天我要说的是UEdito ...

随机推荐

  1. JS设计模式之建造者模式

    建造者模式(builder pattern)属于创建型模式的一种,提供一种创建复杂对象的方式.它将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 建造者模式是一步一步的创建 ...

  2. go变量、类的概念以及类的使用方式,嵌套结构体

    go变量.类的概念以及类的使用方式,嵌套结构体 Go变量 go使用var声明变量,当声明变量时,这个变量对应的值总是会被初始化.这个值要么用指定的值初始化,要么用零值(即变 量类型的默认值)做初始化. ...

  3. illumina SNP 芯片转基因型矩阵

    一.芯片数据 此次拿到的illumina芯片数据并不是原始的数据,已经经过GenomeStudio软件处理成了finalreport文件,格式如下: 之前没处理过芯片数据,对于这种编码模式(Forwa ...

  4. python爬虫采集

    python爬虫采集 最近有个项目需要采集一些网站网页,以前都是用php来做,但现在十分流行用python做采集,研究了一些做一下记录. 采集数据的根本是要获取一个网页的内容,再根据内容筛选出需要的数 ...

  5. ArrayList总结及部分源码分析

    ArrayList源码阅读笔记 1. ArrayList继承的抽象类和实现的接口 ArrayList类实现的接口 List接口:里面定义了List集合的基本接口,ArrayList进行了实现 Rand ...

  6. java.sql.SQLException: Cannot create com._51doit.pojo.User: com._51doit.pojo.User Query: select * from user where username = ? and password = ? Parameters: [AA, 123]

    在从数据库中查询数据,并存入javabean中去时,报这个错误 原因:在建立User类去存储信息时没有创建无参构造方法,创建一个无参构造方法即可

  7. [学习总结]7、Android AsyncTask完全解析,带你从源码的角度彻底理解

    我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制.之前我也写过了一篇文章从源码层面分析了Android的异步消息处理机制,感兴 ...

  8. SpringBoot让测试类飞起来的方法

    单元测试是项目开发中必不可少的一环,在 SpringBoot 的项目中,我们用 @SpringBootTest 注解来标注一个测试类,在测试类中注入这个接口的实现类之后对每个方法进行单独测试. 比如下 ...

  9. ORACEL 创建DIRECTORY

    oracle要直接对文件进行读写必须先创建一个DIRECTORY. 语法如下: CREATE DIRECTORY UTL_FILE_DIR AS '/home/oracle/oradir'; 可以通过 ...

  10. NSMutableArray-->NSString

    1.如何把NSMutableArray 转化为NSString//用字符将NSArray中的元素拼接起来 NSArray *array = [NSArray arrayWithObjects:@&qu ...