HTML5的 input:file上传类型控制 与上传多文件

来源:互联网 发布:聪明的网络语怎么说 编辑:程序博客网 时间:2024/05/22 17:41

一、input:file属性

属性值有以下几个比较常用:

accept:表示可以选择的文件MIME类型,多个MIME类型用英文逗号分开,常用的MIME类型见下表。

multiple:是否可以选择多个文件,多个文件时其value值为第一个文件的虚拟路径。

1、accept

只能选择png和gif图片

<input id="fileId1" type="file" accept="image/png,image/gif" name="file" />

2、multiple

多文件上传

<input id="fileId2" type="file" multiple="multiple" name="file" />

3、常用MIME类型

后缀名       MIME名称*.3gpp    audio/3gpp, video/3gpp*.ac3    audio/ac3*.asf       allpication/vnd.ms-asf*.au           audio/basic*.css           text/css*.csv           text/csv*.doc    application/msword    *.dot    application/msword    *.dtd    application/xml-dtd    *.dwg    image/vnd.dwg    *.dxf      image/vnd.dxf*.gif            image/gif    *.htm    text/html    *.html    text/html    *.jp2            image/jp2    *.jpe       image/jpeg*.jpeg    image/jpeg*.jpg          image/jpeg    *.js       text/javascript, application/javascript    *.json    application/json    *.mp2    audio/mpeg, video/mpeg    *.mp3    audio/mpeg    *.mp4    audio/mp4, video/mp4    *.mpeg    video/mpeg    *.mpg    video/mpeg    *.mpp    application/vnd.ms-project    *.ogg    application/ogg, audio/ogg    *.pdf    application/pdf    *.png    image/png    *.pot    application/vnd.ms-powerpoint    *.pps    application/vnd.ms-powerpoint    *.ppt    application/vnd.ms-powerpoint    *.rtf            application/rtf, text/rtf    *.svf           image/vnd.svf    *.tif         image/tiff    *.tiff       image/tiff    *.txt           text/plain    *.wdb    application/vnd.ms-works    *.wps    application/vnd.ms-works    *.xhtml    application/xhtml+xml    *.xlc      application/vnd.ms-excel    *.xlm    application/vnd.ms-excel    *.xls           application/vnd.ms-excel    *.xlt      application/vnd.ms-excel    *.xlw      application/vnd.ms-excel    *.xml    text/xml, application/xml    *.zip            aplication/zip    *.xlsx     application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

二、样式美化

请看博客:css input[type=file] 样式美化,input上传按钮美化 http://www.haorooms.com/post/css_input_uploadmh

三、AJAX上传文件

在说到ajax上传文件。ajax上传的时候,需要获得input:file选择的文件(可能为多个文件),获取其文件列表为:

// input标签的files属性document.querySelector("#fileId").files// 返回的是一个文件列表数组

获得的文件列表,然后遍历插入到表单数据当中。即:

// 获得上传文件DOM对象var oFiles = document.querySelector("#fileId");// 实例化一个表单数据对象var formData = new FormData();// 遍历图片文件列表,插入到表单数据中for (var i = 0, file; file = oFiles[i]; i++) {    // 文件名称,文件对象    formData.append(file.name, file);}

获得表单数据之后,就可以用ajax的POST上传。

// 实例化一个AJAX对象var xhr = new XMLHttpRequest();xhr.onload = function() {    alert("上传成功!");}xhr.open("POST", "upload.php", true);// 发送表单数据xhr.send(formData);

上传到服务器之后,获取到文件列表为:

Array(    [jpg_jpg] => Array        (            [name] => jpg.jpg            [type] => image/jpeg            [tmp_name] => D:\xampp\tmp\phpA595.tmp            [error] => 0            [size] => 133363        )    [png_png] => Array        (            [name] => png.png            [type] => image/png            [tmp_name] => D:\xampp\tmp\phpA5A6.tmp            [error] => 0            [size] => 1214628        ))

在服务端循环遍历这个数组就可以上传文件了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 高考体检补不了怎么办 辅警体检不合格怎么办 小儿听力筛查未过关怎么办 宝宝听力没过关怎么办 护士体检有乙肝怎么办 高考体检表填错怎么办 高考体检表没有下载怎么办 警校视力没过怎么办 凉鞋挂钩总是脱怎么办 特别害怕抛妇产怎么办 抛妇产害怕紧张怎么办 毕业体检有乙肝怎么办? 宝宝胸围偏小怎么办 入园体检不合格怎么办 油表不显示油量怎么办 上大学体检不过怎么办 军校体检没过怎么办 六次化疗后怎么办 宝宝肚子有蛔虫怎么办 肾综激素依赖怎么办 胎儿阴囊有积液怎么办 中考学生英语很差怎么办 中考考得很差怎么办 科学总是考不好怎么办 初三学生数学不好怎么办 初三学生语文不好怎么办 初三学生英语不好怎么办 初三学生学习不好怎么办? 客户说不考虑怎么办 单位体检有乙肝怎么办 厂里体检出乙肝怎么办 厂里体检有乙肝怎么办 厂里体检查出乙肝怎么办 乙肝携带者肝功能异常怎么办 入职体检过不去怎么办 高考体检错过了怎么办 听力体检没过怎么办 身上皮肤太黑怎么办 体检手册没有了怎么办 体检来例假了怎么办 体检肝有问题怎么办