页面支持选择多个文件并上传(非插件,脚本实现)
来源:互联网 发布:管家婆导入数据失败 编辑:程序博客网 时间:2024/06/05 03:16
最近一个朋友遇到这个问题,由于公司的页面已经写好了。所以插件用不上,而且插件对浏览器的支持并不一定很理想。所以我实现了一个简略版,需要优化和完善。代码如下:
<body>
<form action="upload.do" method="post">
<span class="choosefile">选择文件</span>
<input type="button" value="上传"/>
</form>
</body>
页面body里面,我只放入一个span块元素,用CSS修饰一下,看起来像一个大大的选择文件按钮。
剩下的事情就交给脚本来完成。
<script type="text/javascript">
$(function(){
var filecount = 0;
var filenamecount=0;
$(".choosefile").click(function(){
var inputfile ="<input type='file' style='display:none;' name='fileinput' class='fileinput";
var filenamediv="<div class='filename";
filenamediv+=(filenamecount++)+"'></div>";
inputfile += (filecount++)+"'/>";
$("form").append(inputfile);
$(".fileinput"+(filecount-1)).click();
$(".fileinput"+(filecount-1)).change(function(){
var v=$(this).val();
$(filenamediv).appendTo($("form"));
$(".filename"+(filenamecount-1)).text(v.substring(v.lastIndexOf("\\")+1,v.length));
});
});
//节点删除,名称DIV节点,文件上传输入框节点,
//最好放入一个大的DIV容器,最后删除名称DIV节点的父节点即这个大的DIV容器节点就可以了...
});
</script>
主要就是节点的归类和包装。如何用JS统一管理这些节点,如动态插入,动态删除。最后就是表单的一个提交过程,后台用struts2的就用File文件数组来接受。
这个是我觉得最容易实现的方法。
还有一个方法就是我打算用一个Input[file]去接收多个文件并用脚本保存合并的文件流最后用ajax提交到后台,实现难度在于如何对文件进行流化并且合并,如何解读input[file]文件的选择与否,html标签的编译与解析都是浏览器完成的JS如何做到?后台如何对已经流化的文件进行解析?浏览器可以将本地文件流化通过HTTP传到后台,但是用JS如何流化并且以什么样的形式进行合并多个文件流一起发送?后台如何对合并的多文件流进行拆分和解析。
- 页面支持选择多个文件并上传(非插件,脚本实现)
- uploadify插件实现多个图片上传并预览
- 支持多文件上传的插件uploadify
- ftp脚本 实现非交互模式上传文件
- 前端上传组件Plupload使用指南(支持多文件选择上传)
- jquery异步文件上传插件ajaxFileUpload教程(支持多文件上传)
- asp一次选择多个文件上传
- 同时选择多个文件,批量上传
- input 选择多个文件上传
- php上传文件,支持多个文件上传
- Jquery插件(uploadify插件实现多文件上传)
- ftp上传多个文件脚本
- js 文件上传插件(支持上传进度信息)
- asp.net生成缩略图并支持文件上传实现代码
- Android实现文件上传(支持多文件)
- 关于 页面多语言支持的纯前端(JQuery插件)实现及 .json 文件读取报404的问题
- 实现多个文件上传
- 上传多个zip文件并解压
- 利用eclipse的Find/Replace里的正则工具
- 第一次打”用户需求副本“
- Xcode定位crash代码,找出崩溃原因的配置
- Notification和NotificationManager的使用
- 用RichTextBox进行无闪烁的着色【待试验】
- 页面支持选择多个文件并上传(非插件,脚本实现)
- Flex面试题
- ubuntu ocaml blast
- 程序员求职,看重公司的哪些方面?
- 啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
- 方法论概述
- matlab文件读写、文字处理、命令行总结
- Linux 汇编语言开发指南(转)
- Nim游戏博弈