$(function(){
$(".layui-progress").hide();
$("[data-upload-file]").each(function(){
$(this).click(function(){
var url = "" ;
var file = $(this).data("upload-file");
var progress = $(this).data("upload-progress");
var progressFilter = $(this).data("upload-progress-filter");
var target = $(this).data("upload-target");
var id = $(this).data("file-id");
console.log(id)
var files = $(file)[0].files;//$(file)是一个数组,jquery选中所有的file,$(file)[0]表示从数组中选择第一个元素
if(files.length == 0){
return layer.msg("请选择文件");
}
if(file.indexOf("covfile") != -1){
url = "/uploadResource/" + id;
var ext = /\.(?:bmp|cod|gif|ief|jpe|jpg|jfif|svg|tif|tiff|ras|cmx|ico|pnm|pbm|pgm|rgb|xbm|xpm|xwd|png)$/i;
if(!files[0].name.match(ext)){
return layer.msg("文件格式错误!");
}
}else{
url = "/uploadResource/" + id;
switch(id){
case 1:
var ext = /\.(?:au|snd|mid|rmi|mp3|aif|aifc|aiff|m3u|ra|ram|wav)$/i;
break;
case 2:
var ext = /\.(?:bmp|cod|gif|ief|jpe|jpg|jfif|svg|tif|tiff|ras|cmx|ico|pnm|pbm|pgm|rgb|xbm|xpm|xwd|png)$/i;
break;
case 3:
var ext = /\.(?:css|323|htm|html|stm|uls|pptx|mpp|wcm|wdb|wks|wps|js)$/i;
break;
case 4:
var ext = /\.(?:mp2|mpa|mpe|mpeg|mpv2|mov|qt|lst|lsx|asf|asr|asx|avi|mp4|movie)$/i;
break; }
if(!files[0].name.match(ext)){
return layer.msg("文件格式错误!");
} } uploadFile(url, file, progress, progressFilter, function(evt){
if(evt.target.responseText==0){
layer.msg("上传文件时出错");
}else{
$(target).val(evt.target.responseText);
layer.msg("上传成功!");
} });
});
});
})
function uploadFile(url, file, progress, progressFilter, uploadComplete){
$(progress).show();
var fd = new FormData();
fd.append("file", $(file)[0].files[0]);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", url);
xhr.send(fd); function uploadProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = Math.round(evt.loaded * 100 / evt.total);
var percentCompleteS = percentComplete.toString();
if(percentCompleteS == "100"){
layui.element().progress(progressFilter, percentCompleteS + '%');
$(".layui-progress").fadeOut();
//layer.msg("上传成功!");
}else{
layui.element().progress(progressFilter, percentCompleteS + '%');
} }else{
$(progress).html(percentComplete.toString() + '无法计算上传进度');
}
}
function uploadFailed(evt) {
layer.msg("上传文件时出错");
}
function uploadCanceled(evt) {
layer.msg("取消上传");
} }
function imgFormat(files){
var ext = /\.(?:bmp|cod|gif|ief|jpe|jpg|jfif|svg|tif|tiff|ras|cmx|ico|pnm|pbm|pgm|rgb|xbm|xpm|xwd|png)$/i;
if(!files[0].name.match(ext)){
return layer.msg("文件格式错误!");
}
}
//
//function fileSelected() {
// var file = $(document.body).find('input[name="fileToUpload"]').prop('files');
// if (file) {
// var fileSize = 0;
// if (file.size > 1024 * 1024)
// fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
// else
// fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
// $('.fileName').html('文件名称: ' + $(file).attr("name"));
// $('.fileSize').html('文件大小: ' + $(file).attr("size"));
// $('.fileType').html('文件类型: ' + $(file).attr("type"));
// }
// }
//
// function uploadFile() {
// $(".layui-progress").show();
// var fd = new FormData();
// fd.append("file", $('input[name="fileToUpload"]').prop('files'));
// var xhr = new XMLHttpRequest();
// xhr.upload.addEventListener("progress", uploadProgress, false);
// xhr.addEventListener("load", uploadComplete, false);
// xhr.addEventListener("error", uploadFailed, false);
// xhr.addEventListener("abort", uploadCanceled, false);
// xhr.open("POST", "uploadResource");//修改成自己的接口
// xhr.send(fd);
// }
// function uploadProgress(evt) {
// if (evt.lengthComputable) {
// var percentComplete = Math.round(evt.loaded * 100 / evt.total);
// $('.progressNumber').html(percentComplete.toString() + '%');
// $('.progressNumber').width(percentComplete.toString() + '%');
// }
// else {
// $('.progressNumber').html('无法计算上传进度');
// }
// }
// function uploadComplete(evt) {
// /* 服务器端返回响应时候触发event事件*/
// alert(evt.target.responseText);
//
// /**
// $("#uploadnewfile").attr("name": ) ;
// $("#uploadnewfile").val = ;
// **/
// }
// function uploadFailed(evt) {
// alert("上传文件时出错");
// }
// function uploadCanceled(evt) {
// alert("取消上传");
// }
//
 <div class="form-group">
<label for="lastname" class="col-sm-3 control-label">音频资源文件:</label>
<div class="col-sm-7">
<!-- 进度条开始 -->
<div class="clearfix">
<label for="fileToUpload"></label>
<input type="file" name="fileToUpload" class="fileToUpload reaudiofile" style="float:left;"/>
<input type="button" value="点击上传" data-upload-file=".reaudiofile" data-upload-progress=".reaudioprogress"
data-upload-progress-filter="reaudio" data-file-id="1" data-upload-target=".reaudiofile-target" class="layui-btn layui-btn-small" style="float:left;" />
</div>
<div class="layui-progress audioprogress" lay-filter="reaudio" style="margin:20px 0 5px 0;" >
<div class="layui-progress-bar layui-bg-green progressNumber"></div>
</div>
<input type="hidden" name="audioFile" value="" class="audiofile-target"/>
<!-- 进度条结束 -->
</div> </div>
<div class="form-group">
<label for="lastname" class="col-sm-3 control-label">封面路径:</label>
<div class="col-sm-7">
<div class="clearfix">
<label for="fileToUpload"></label>
<input type="file" name="fileToUpload" class="fileToUpload covfile2" style="float:left;"/>
<input type="button" value="点击上传" data-file-id="5" data-upload-file=".covfile2" data-upload-progress=".covprogress"
data-upload-progress-filter="cov" data-upload-target=".covfile-target" class="layui-btn layui-btn-small" style="float:left;" />
</div>
<div class="layui-progress covprogress" lay-filter="cov" style="margin:20px 0 5px 0;" >
<div class="layui-progress-bar layui-bg-green progressNumber" ></div>
</div>
<input type="hidden" name="bgFile" value="" class="covfile-target"/>
</div>
</div>

文件上传&&验证文件格式的更多相关文章

  1. 文件上传漏洞演示脚本之js验证

    文件上传漏洞演示脚本之js验证 0 0       716   关于文件上传漏洞,想必玩web安全的同学们都有接触,之前本站也发布过一篇文章介绍文件上传漏洞的各种绕过方法,但是只是有文档却没有演示代码 ...

  2. 五十七:flask文件上传之使用flask-wtf验证上传的文件

    1.安装:pip install flask-wtf2.定义表单验证的时候,对文件的字段,需使用:FileField3.验证器从flask_wtf.file中导入,FileRequired为验证文件必 ...

  3. 【Java EE 学习 35 下】【struts2】【struts2文件上传】【struts2自定义拦截器】【struts2手动验证】

    一.struts2文件上传 1.上传文件的时候要求必须使得表单的enctype属性设置为multipart/form-data,把它的method属性设置为post 2.上传单个文件的时候需要在Act ...

  4. .Net大文件上传(转--待验证)

    几种常见的方法,本文主要内容包括:    第一部分:首先我们来说一下如何解决ASP.net中的文件上传大小限制的问题,我们知道在默认情况下ASP.NET的文件上传大小限制为2M,一般情况下,我们可以采 ...

  5. SpringMVC文件上传 Excle文件 Poi解析 验证 去重 并批量导入 MYSQL数据库

    SpringMVC文件上传 Excle文件 Poi解析并批量导入 MYSQL数据库  /** * 业务需求说明: * 1 批量导入成员 并且 自主创建账号 * 2 校验数据格式 且 重复导入提示 已被 ...

  6. Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题 swfUpload多文件上传

    Java 利用SWFUpload多文件上传 session 为空失效,不能验证的问题(转) 我们都知道普通的文件上传是通过表单进行文件上传的,还不能达到异步上传的目的.通过使用某些技术手段,比如jqu ...

  7. Python Django缓存,信号,序列化,文件上传,Ajax登录和csrf_token验证

    本节内容 models操作 Django的缓存 请求方式 序列化 Form 配合Ajax实现登录认证 上传文件 Ajax  csrf_token验证方式 1 models操作 单表查询: curd(增 ...

  8. Spring学习笔记2——表单数据验证、文件上传

    在上一章节Spring学习笔记1——IOC: 尽量使用注解以及java代码中,已经搭建了项目的整体框架,介绍了IOC以及mybatis.第二节主要介绍SpringMVC中的表单数据验证以及文件上传. ...

  9. 01- ajax, 登录验证,json数据,文件上传

    1.ajax简介 1.向服务器发送请求的途径 # 向服务器发送请求的途径 1. 浏览器地址栏,默认get请求 2. form表单: get请求 post请求 3. a标签,默认get请求 4. Aja ...

随机推荐

  1. 使用Excel表格的记录单功能轻松处理工作表中数据的方法

    使用Excel表格的记录单功能轻松处理工作表中数据的方法 记录单是将一条记录分别存储在同一行的几个单元格中,在同一列中分别存储所有记录的相似信息段.使用记录单功能可以轻松地对工作表中的数据进行查看.查 ...

  2. PHP DOMDocument操作 XML类 属性、方法

    属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definition 以DTD或XML模式给出的节 ...

  3. 【Unity3D NGUI】----UI尺寸和位置的调整

    1 尺寸与位置 通过UIWidget类获取,该类是所有UI元素的基类 在unity中创建一个sprite,如下图所示 这里面这个sprite的大小受几个属性的影响,首先是属性面板里的Size,对应的U ...

  4. JAVA中的面向对象与内存解析_1

    对象的创建和引用   必须使用new关键字创建对象. 使用对象(引用成员变量或来引用对象的成员变量. 使用对象(引用)方法(参数列表)来调用对象的方法. 同一类的每个对象有不同的成员变量存储空间. 同 ...

  5. DOM操作 、js获取id的内容 和修改原来的内容(innerHTML)

    js获取id的内容(getElementById) 和修改原来的内容(innerHTML) 1.通过ID获取元素 学过HTML/CSS样式,都知道,网页由标签将信息组织起来,而标签的id属性值是唯一的 ...

  6. Redis 系列(02)数据结构

    目录 Redis 系列(02)数据结构 Redis 系列目录 1. String 1.1 基本操作 1.2 数据结构 1.3 Redis数据存储结构 2. Hash 2.1 基本操作 2.2 数据结构 ...

  7. lvm 磁盘扩容

    LVM磁盘管理 一.LVM简介 LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现.LVM将一个或多个硬盘 ...

  8. 向服务器发送post请求

    /** * 通过HttpClient发送Post请求 * @param path 请求路径 * @param params 请求参数 * @param encoding 编码 * @return 请求 ...

  9. Oracle update 两表及以上关联更新,出现多值情况,不是一对一更新

    为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id numbe ...

  10. MAC如何与linux服务器传递文件

    scp命令可以从本地拷贝文件到Linux服务器,也可以将Linux服务器文件下载到本地 将远程/root/articaleFetch/dist目录下文件和文件夹拷贝到dist文件夹 scp root@ ...