file 多次上传附件功能完善
之前解决了一个页面中的单个附件上传问题,使用的是 id 定位。但是一个页面中,可能存在多个附件上传的地方,这时候如果继续使用 id,会出问题。
我依旧会上传一个附件。附件链接地址:
https://files.cnblogs.com/files/fchx91/uploadFilesNew.rar
so。拓展如下:
// * 添加图片
function bindPic(inputId, picShowId,inputDivId,maxLen){
var picFileLen = $("#"+inputDivId).children().length; //初始状态是从0 开始的
if(checkLen(picFileLen,maxLen)){
var newInput = $("#"+inputId).clone(); // 依旧是 input-file 的克隆,保存 files[0] 信息
newInput.attr("id",inputDivId+picFileLen); // 更换id
newInput.attr("onchange",""); //清除 onchange 事件
$("#"+inputDivId).append(newInput); // 存放在 inputDivId 中
// 以下内容是获取到 files[0]中的相关信息---不仅仅适用于图片,也适用于视频哟。 video--src / type
var iName = document.getElementById(inputId).files[0].name;
var iSize = Math.round(document.getElementById(inputId).files[0].size / 1024);
var sizeInfo;
if (iSize>1024){
sizeInfo = Math.round(iSize / 1024 )+"Mb";
} else {
sizeInfo = iSize +"Kb";
}
var iUrl = URL.createObjectURL($("#"+inputId)[0].files[0]);
var html ="<div class='pic-thumbnail' data-unique='"+iName+"'><button class='delete-content' onclick='deletePic(this)'></button>";
html += "<p data-value='picName'><strong>"+iName+"</strong></p>";
html += "<span data-value='picSize'>"+sizeInfo+"</span>";
html += "<img data-value='picImg' width='130px' src='"+iUrl+"' alt='"+iName+"' />";
$("#"+picShowId).append(html);
$("#"+picShowId).css("display","inline-block"); //picShowId 用来存放实际展示的图片信息列表
}
};
// 删除图片,并且删除对应的 file
function deletePic(obj){ //obj 在这里实际代表的是 this
var gradDiv = $(obj).parent().parent(); //找到 picShowId ;这个必须在前,否则 parIndex 会报错
var inputDivId = gradDiv.attr("id"); //根据 id 找到 inputDivId
// 删除这个结构的同时,需要删除对应的数据。打算采用找 index 的方法,来删除 picFile 中对应的数据
var parIndex = $(obj).parent().index();
$(obj).parent().remove();
var fileDivId = $("#"+inputDivId).siblings("[data-value='files']").attr("id");
console.log("存放files 的div 的ID 属性fileDivId===="+fileDivId);
// picInputDiv index>picIndex 角标依次 -1;
var inputLen = $("#"+fileDivId).children().length;
var Dvalue = inputLen-1-parIndex;
if(Dvalue ==0) {
$("#"+fileDivId).find("#"+fileDivId+parIndex).remove();
} else if(Dvalue > 0) {
$("#"+fileDivId).find("#"+fileDivId+parIndex).remove();
for(var i=1; i<Dvalue+1; i++){
$("#"+fileDivId+(parIndex+i)).attr("id",fileDivId+(parIndex+i-1));
}
}
};
// 监测是否超出限制
function checkLen(len,max){
if(len<max){
return true;
} else {
console.log("超出max 上限")
alert("不能再上传了。已经满额 ");
return false;
}
}
效果图:

file 多次上传附件功能完善的更多相关文章
- C# fckeditor添加上传附件功能
最近在维护系统时,要把fckediotr加上上传附件功能,好久没有用fckeditor了,现在都已经改名字,不叫这个了. 修改统计器下面的fckconfig.js,方法如下: 1.把FCKConfig ...
- Discuz模拟批量上传附件发帖
简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...
- discuz 模拟批量上传附件发帖
discuz 模拟批量上传附件发帖 简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 插件地址 h ...
- React项目中使用wangeditor以及扩展上传附件菜单
在最近的工作中需要用到富文本编辑器,结合项目的UI样式以及业务需求,选择了wangEditor.另外在使用的过程中发现wangEditor只有上传图片和视频的功能,没有上传文本附件的功能,所以需要对其 ...
- 怎样解决asp.net.mvc上传附件超过长度问题?
最近,在做一个上传附件功能,但是文件超过4M,就报上传的文件超过长度问题
- file 自定义上传附件并展示缩略图
效果图镇楼.. 写的有点乱.上传一个实例供大家参考--附件下载地址如何下: https://files.cnblogs.com/files/fchx91/uploadFiles.rar 2019- ...
- salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...
- JavaWeb实现文件上传下载功能实例解析
转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...
- webservice跨服务器上传附件
最近一个项目,用到文件上传功能,本来简单地使用upload控件直接post到服务器保存,简单实现了.后来考虑到分布是部署,静态附件.图片等内容要单独服务器(命名为B服务器,一台,192.168.103 ...
随机推荐
- 软件工程实践-WC项目之C实现
1.Github项目地址 https://github.com/ShadowEvan/homework 基本功能 -c 统计文件字符数(实现) -w 统计文件词数(实现) -l 统计文件行数(实现) ...
- ngnix简单使用
NGINX是一个高性能HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,是由伊戈尔·塞索耶夫为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公版发布于2004年10月4日 ...
- 专注于C#.Net WPF软件开发-软件反编译-软件破解-逆向-靖芯科技-包括安卓APK反编译
靖芯科技提供.Net软件开发,软件修改定制二次开发,软件破解,反编译,逆向等各项优质服务: 包括安卓APK软件反编译. 包括但不限于C#,WPF,Surface,Winform,Asp.net.JAV ...
- koa-ueditor上传图片到七牛
问题描述:服务器系统架构采用的是koa(并非koa2),客户端富文本编辑器采用的是百度的ueditor控件.现在需要ueditor支持将图片直接上传到七牛云. 前提:百度的ueditor需要在本地配置 ...
- 在html代码中js的script标签建议放在那里?
今天编写了一个简单的js代码,F12有错误,然后发现是<script>放的位置有问题.之前在我的印象当中,说的是这个标签放在哪里都可以,然而...并不是这样的,例如我现在练习的这个代码,写 ...
- 【spring源码分析】IOC容器初始化(四)
前言:在[spring源码分析]IOC容器初始化(三)中已经分析了BeanDefinition注册之前的一些准备工作,下面将进入BeanDefinition注册的核心流程. //DefaultBean ...
- 随心测试_软测基础_005 <测试人员工作内容>
接上篇:清楚了_测试人员的工作职责范围,那每项 测试活动的具体工作内容有哪些呢? Q1:如何理解测试工程师的工作内容? A1:SX的观点:综合一体化 现如今互联网行业如何哪达,每一项IT职业的工作职责 ...
- Putnam竞赛一道题及中科大自主招生试题的联系
Putnam试题 For any positive integer n let denote the closest integer to $\sqrt{n}$,Evaluate $$\sum_{n= ...
- Python之shutil模块(复制移动文件)
用python实现将某代码文件复制/移动到指定路径下.场景例如:mv ./xxx/git/project1/test.sh ./xxx/tmp/tmp/1/test.sh (相对路径./xxx/tmp ...
- Vim安装使用和配置
卸载vim sudo apt-get remove --purge vim (--purge 是完全删除,会连配置文件一起删除) 也可以使用yum等其它方式安装 ,如果提示apt-get命令不存在可以 ...