$(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. Nuget-Doc:NuGet 介绍

    ylbtech-Nuget-Doc:NuGet 介绍 NuGet 是适用于 .NET 的包管理器. 它使开发人员能够创建.共享和使用有用的 .NET 库. NuGet 客户端工具可生成这些库并将其作为 ...

  2. 测开之路三十一:Flask基础之请求与相应

    from flask import requestrequest.pathrequest.methodrequest.formrequest.argsrequest.values 一般用form获取p ...

  3. MySQL查询上一条记录和下一条记录

    如果ID是主键或者有索引,可以直接查找: 方法一: 查询上一条记录的SQL语句(如果有其他的查询条件记得加上other_conditions以免出现不必要的错误): select * from tab ...

  4. trizip haskell implementation

    1 trizip :: [a] -> [b] -> [c] -> [(a,b,c)] 2 trizip a b c 3 | null a = [] 4 | null b = [] 5 ...

  5. spring boot 多环境(dev、test、prod)配置文件---命令行切换

    properties配置格式 在Spring boot 中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对于你的环境标识,比如: ...

  6. shell数学运算

    shell的数学运算 branches@ubuntu:~$ var1=$[ * ] branches@ubuntu:~$ echo $var1 branches@ubuntu:~$ var2=$[$v ...

  7. 【记录】iconfont 批量把图标加入购物车的方法

    iconfont  是阿里旗下很好用的图标管理网站(https://www.iconfont.cn/),里面有百万个小图标,可以随意下载切换颜色,是很多前端人员的选择. 但是网站没有将图标批量加入购物 ...

  8. 【报错】解决logstash tracking_column not found in dataset. {:tracking_column=>"updated_time"}问题

    今天用logstash同步数据库记录到elasticsearch时候出现错误,错误信息如下: [2019-10-12T23:51:00,529][WARN ][logstash.inputs.jdbc ...

  9. memcache、mongodb、redis的对比区别

    >>Memcached Memcached的优点:Memcached可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS(取决于key.value的字节大小以及服务器硬件性能,日常环境 ...

  10. 力扣 — Rotate List()

    题目描述: 中文: 给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数. 示例 1: 输入: 1->2->3->4->5->NULL, k = ...