file控件,以及fileList对象。

  file控件和filelist对象基础知识。

 

   file控件:

  <input type = "file" id = "idName" multiple = "multiple">
  document.getElementById("idName").file; //返回的是fileList对象。

  fileList对象的常用方法有name(文件名称)、type(文件类型)、size(文件大小)、lastModefiedDate(文件的最后修改时间)等 
  默认情况下,选择文件为单选,但是加上multiple属性之后,即可以多选。 
  此处的multiple属性,只写”multiple”或者是写成”multiple=’multiple’”这种形式都是可以,这点类似于autofocus,loop这类属性。个人习惯写成multiple=’multiple’这种格式。 
  此外,file控件还有accept属性,用于指定选择文件类型。 
  accept=”application/msexcel” 
  accept=”application/msword” 
  accept=”application/pdf” 
  accept=”application/poscript” 
  accept=”application/rtf” 
  accept=”application/x-zip-compressed” 
  accept=”audio/basic” 
  accept=”audio/x-aiff” 
  accept=”audio/x-mpeg” 
  accept=”audio/x-pn/realaudio” 
  accept=”audio/x-waw” 
  accept=”image/gif” 
  accept=”image/jpeg” 
  accept=”image/tiff” 
  accept=”image/x-ms-bmp” 
  accept=”image/x-photo-cd” 
  accept=”image/x-png” 
  accept=”image/x-portablebitmap” 
  accept=”image/x-portable-greymap” 
  accept=”image/x-portable-pixmap” 
  accept=”image/x-rgb” 
  accept=”text/html” 
  accept=”text/plain” 
  accept=”video/quicktime” 
  accept=”video/x-mpeg2” 
  accept=”video/x-msvideo”

  下面的代码对应三部分内容: 
  1、文件类型不限,显示文件的文件名、文件类型、文件大小和文件的最后修改时间 
  2、限制文件类型为图片,通过正则表达式的形式,在选择之后判断,显示文件的文件名、文件类型、文件大小和文件的最后修改时间 
  3、限制文件类型为图片,通过accept属性,在选择文件时限制,显示文件的文件名、文件类型、文件大小和文件的最后修改时间 
代码如下:

HTML部分:

 1 <!doctype html>
 2 <html lang="en">
 3     <head>
 4         <meta charset="UTF-8">
 5         <meta name="Generator" content="EditPlus?">
 6         <meta name="Author" content="Yvette Lau">
 7         <meta name="Keywords" content="关键字">
 8         <meta name="Description" content="描述">
 9         <title>Document</title>
10         <style>
11             *{
12                 margin:0px;
13                 padding:0px;
14                 font-size:22px;
15             }
16             .content{
17                 background-color:#57FF57;
18                 opacity:0.6;
19                 padding:40px ;
20                 width:600px;
21                 border-radius:10px;
22                 margin:20px auto;
23             }
24             input[type=‘file‘]{
25                 outline:none;
26             }
27             input[type=‘button‘]{
28                 border-radius:10px;
29                 height:50px;
30                 width:80px;
31                 background-color:pink;
32                 outline:none;
33                 cursor:pointer;
34             }
35             input[type=‘button‘]:hover{
36                 font-weight:600;
37             }
38             #details, #information, #imgInfo{
39                 border-radius:10px;
40                 padding:10px 20px;
41                 background-color: rgba(246,255,73,0.6);
42                 color:#000000;
43                 display:none;
44                 margin:10px;
45                 -moz-user-select: none;
46                 -webkit-user-select: none;
47                 -ms-user-select: none;
48                 user-select: none;
49             }
50             #details p, #information p, #imgInfo p{
51                 font-weight: 600;
52                 font-family: "Microsoft Yahei";
53                 height: 40px;
54                 line-height: 40px;
55             }
56         </style>
57     </head>
58     <body>
59         <div class = "content">
60             <input type = "file" id = "file" multiple = "multiple"/>
61             <input type = "button" id = "upload" value = "上传"/>
62             <div id = "details">
63             </div>
64         </div>
65
66         <div class = "content">
67             <input type = "file" id = "image" multiple = "multiple" />
68             <input type = "button" id = "show" value = "上传"/>
69             <div id = "information">
70             </div>
71         </div>
72
73         <div class = "content">
74             <input type = "file" id = "imageOnly" multiple = "multiple" accept = "image/*"/>
75             <input type = "button" id = "uploadImg" value = "上传"/>
76             <div id = "imgInfo">
77             </div>
78         </div>
79     </body>
80 </html>

JS部分:

 1 <script type = "text/javascript">
 2     window.onload = function(){
 3         /*文件上传*/
 4         var filesList = document.getElementById("file");
 5         var up = document.getElementById("upload");
 6         var details = document.getElementById("details");
 7         /*通过正则表达式,限制文件类型*/
 8         var imgList = document.getElementById("image");
 9         var show = document.getElementById("show");
10         var information = document.getElementById("information");
11         /*通过file空间的自带属性accept来限制文件类型*/
12         var imageOnly = document.getElementById("imageOnly");
13         var uploadImg = document.getElementById("uploadImg");
14         var upoadImg = document.getElementById("imgInfo");
15
16         up.onclick = function(){
17             insertInformation(details, filesList);
18         }
19         show.onclick = function(){
20             insertInformation(information, imgList, /image\/\w+/);
21         }
22         uploadImg.onclick = function(){
23             insertInformation(upoadImg, imageOnly);
24         }
25
26         /*将时间格式化为“yy-mm-dd hh:mm:ss”*/
27         function FormatDate (strTime) {
28             var date = new Date(strTime);
29             return date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate() +" "+ date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
30         }
31
32         /*des是存放信息的对象,fileMes是file控件, pattern是正则表达式*/
33         function insertInformation(des, fileMes, pattern){
34             des.innerHTML = "";
35             for (var i = 0; i < fileMes.files.length; i++)
36             {
37                 var file = fileMes.files[i];
38                 if(pattern == undefined || pattern.test(file.type)){
39                     des.innerHTML += "<p>文件名:" + file.name + "</p>";
40                     des.innerHTML += "<p>文件类型:" + file.type + "</p>";
41                     des.innerHTML += "<p>文件大小:" + file.size + "</p>";
42                     des.innerHTML += "<p>最后修改时间:" + FormatDate(file.lastModifiedDate) + "</p>" + "<br/>";
43                     des.style.display = "block";
44                 }else{
45                     alert(file.name + "的文件类型不正确");
46                 }
47             }
48         }
49     };
50 </script>

上面代码的运行效果如下: 

时间: 2024-08-06 15:51:05

file控件,以及fileList对象。的相关文章

File控件杂谈

我们通常使用<input type='file'/>来实现网页中文件上传功能,用户可以通过点击file控件选择本地文件,当我们提交包含该控件的表单时,浏览器会向服务器发送用户选中的文件. 看上面的描述,file控件貌似挺强大的,事实上也是这样的.但实际开发中我们也可以挑出file控件的诸多问题: 1.我们可以通过value属性获取用户选择的文件的名称,但出于安全因素,该属性只读,所以也就无法指定默认值. 2.最让我们诟病的是,file控件在不同浏览器上长相迥异.这让我们开发者情何以堪?而且“选

使用Profile文件记录JFileChooser(或者File控件)最新打开的文件路径

一.描述 我们使用JFileChooser或者File控件打开Windows系统目录下的文件之后,如何保存我们最近打开的文件路径,使得每次打开文件就能打开最近一次打开的文件目录,而不是每次默认打开C:\Users\Administrator\Documents目录.我们需要使用Profile属性文件来记录最近打开的文件路径,在File控件打开文件前先读取配置文件中的最近文件目录,在打开文件后将路径保存到Profile文件中,在操作完毕点击确定按钮后写入Profile配置文件. 二.源代码 imp

File杂谈——初识file控件

首先我说明下,这里介绍的file控件指的是网页中的FileUpload对象,也就是我们常见的<input type="file">.如果你不是想寻找这方面的东西,就可以绕道了. 功能 当我们需要在网页中实现文件上传功能的时候,file控件就可以大显身手了.HTML文档中每添加一个<input type="file">,实际就是创建了一个FileUpload实例对象.用户可以通过点击file控件选择本地文件,当我们提交包含该file控件的表单时

file控件change事件触发问题

最近,项目中需要用到一个图片上传的功能,我用的file控件来选取图片文件,然后利用js读取文件来预览图片,最后再根据用户的操作来决定是否上传文件. 其中碰到了一个奇怪的问题:在选取完第一张图片,并上传后,再选取第二张图片的时候,并没有触发file的change事件. 问了下度娘,各种解决方案很多: 1)有的说要使用live来注册事件,如可以写成$('#fileID').live('change,function(){//do something}); 2)有的说要用replaceWith把原来的

input的file 控件及美化

在一些网站进行上传时,当单击了“浏览”按钮之后会弹出[选择文件]的对话框.想要实现这一功能,用input的file控件来实现就好啦~ <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style></style> </head> <

混合开发 webview 中file 控件 点击后无反应解决方法

最近在做个项目 ,需要 使用 file 控件上传 图片到服务器 ,在手机浏览器中 可以正常选择照片,但是放到 android 应用中的webview中,file 控件点击后就没有反应. 百度了一番后,找到以下解决方案 开头定义 private ValueCallback<Uri> mUploadMessage; final static int FILE_SELECTED = 4; 然后设置 mWebView.setWebChromeClient(new WebChromeClient() {

file控件选择同一文件不触发change事件和img控件不改变src的情况下图片不刷新问题解决

最近跑来前端掺和了.. file控件的问题用 inputFile.value = ''; img控件的问题,在图片后面添加一串无意义的参数即可,例如: img.src = 'file:///' + 本地图片路径+ '?t=' + Math.random();

File控件选择图片的时候在Html5下马上预览

页面HTML <div> <img src="@pic.Path" id="img" style="width:200px;height:200px;" /> <form id="form_photo" method="post" action="/N/SavePhoto?id=1"> <input style=" display:no

为什么Jquery对input file控件的onchange事件只生效一次

今天在做jquery对input file控件的onchange事件进行监听,就一直只生效一次,不知道Jquery为什么对file控件没有做到每次改变触发onchange事件的效果,但是还是有好几种解决方法的: 1.原始方法:把事件写在file控件的onchange=""里面: 2.Jquery方法一: $('#fileId').live('change',function(){ //逻辑添加.... }); 3.Jquery方法二: onchange后,生成一个新input type