zoukankan      html  css  js  c++  java
  • HTML5的 input:file上传类型控制

    一、input:file属性

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

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

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

    1、accept

    只能选择png和gif图片

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

    2、multiple

    多文件上传

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

    3、常用MIME类型

    可以设置通用类型     .*     MIME类型:application/octet-stream

    eg:.bsy .bsl预算文件,比较少见,可以直接另存为。

      后缀名       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选择的文件(可能为多个文件),获取其文件列表为:

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

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

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

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

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

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

     1 Array
     2 (
     3     [jpg_jpg] => Array
     4         (
     5             [name] => jpg.jpg
     6             [type] => image/jpeg
     7             [tmp_name] => D:xampp	mpphpA595.tmp
     8             [error] => 0
     9             [size] => 133363
    10         )
    11 
    12     [png_png] => Array
    13         (
    14             [name] => png.png
    15             [type] => image/png
    16             [tmp_name] => D:xampp	mpphpA5A6.tmp
    17             [error] => 0
    18             [size] => 1214628
    19         )
    20 
    21 )

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

    原文链接:http://www.haorooms.com/post/input_file_leixing

  • 相关阅读:
    搬运好文章->>>>>子网划分详解
    搬运好文章->>>>>子网掩码详解
    搬运好文章->>>>>IP地址和MAC地址详解
    搬运好文章->>>>>计算机中进制之间的关系和转换
    extend 与 append 的区别
    数据类型---字符串
    多引号的作用,字符串格式化
    列表复制的几种方法
    十六进制和二进制转换
    python奇偶数求和
  • 原文地址:https://www.cnblogs.com/lstory/p/7365233.html
Copyright © 2011-2022 走看看