$(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. 异常的处理try-catch

    Java异常处理 Java采用的异常处理机制,是将异常处理的程序代码集中在一起, 与正常的程序代码分开,使得程序简洁.优雅,并易于维护. * 异常的处理: 抓抛模型*** 过程一 : 抛, 程序在执行 ...

  2. 用 Flask 来写个轻博客 (35) — 使用 Flask-RESTful 来构建 RESTful API 之四

    Blog 项目源码:https://github.com/JmilkFan/JmilkFan-s-Blog 目录 目录 前文列表 POST 请求 身份认证 测试 前文列表 用 Flask 来写个轻博客 ...

  3. CENTER OS7关闭防火墙

    CentOS 7.0默认使用的是firewall作为防火墙,之前版本是使用iptables. 所以在CentOS 7执行下面命令是无法查看防火墙状态的. [root@localhost ~]# ser ...

  4. 如何在列表,字典,集合中,根据条件筛选数据 -- Python数据结构与算法相关问题与解决技巧

    实际案例: 1.过滤掉列表 [3,9,-1,10,20,-2..]的负数 2.筛出字典{'LiLei':79,'Jim':88,'Lucy':92...}中值高于90的项 3.筛出集合 {77,89, ...

  5. HttpServletRequest 对文件上传的支持

    此前,对于处理上传文件的操作一直是让开发者头疼的问题,因为 Servlet 本身没有对此提供直接的支持,需要使用第三方框架来实现,而且使用起来也不够简单.Servlet 3.0 已经提供了这个功能,而 ...

  6. MSF——Meterpreter(三)

    MSF系列: MSF——基本使用和Exploit模块(一) MSF——Payload模块(二) MSF——Meterpreter(三) MSF——信息收集(四) 一.简介 Meterpreter是Me ...

  7. go语言统计字符个数

    具体代码如下: package main import "fmt" func main() { m := make(map[rune]int, 1) var input strin ...

  8. 【Mock.js】前端模拟假数据,不用在手拼了

    [Mock.js]前端模拟假数据,不用在手拼了:https://www.jianshu.com/p/8579b703a4c1

  9. JS高级程序随笔一

    function Aarguments(x,y){ for(var i=0;i<arguments.length;i++){ alert(arguments[i]); }; }; Aargume ...

  10. 字符串String的使用方法

    var ddd = "举头望明月,低头思故乡" document.writeln(ddd.split(''));//选择字符串中的一个标识符,将字符串分割成数组; var slic ...