zoukankan      html  css  js  c++  java
  • JS中使用FormData上传图片

      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4         <meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
      5         <meta charset="UTF-8">
      6         <title>使用FormData上传图片</title>
      7         <style>
      8             .clearflex:after{
      9                 content:'';
     10                 height:0;
     11                 display:block;
     12                 clear: both;
     13                 visibility: hidden;
     14             }
     15             .content{
     16                 width:600px;
     17                 height: 500px;
     18                 border-radius:10px;
     19                 padding:10px;
     20                 overflow-y: scroll;
     21                 margin:100px auto 0;
     22                 border:1px solid #333;
     23             }
     24             .upWrap{
     25                 width:100px;
     26                 height: 100px;
     27                 margin:10px;
     28                 float: left;
     29                 position: relative;
     30                 overflow: hidden;
     31             }
     32             .upWrap > .fileWrap,.upWrap > .fileWrap > input[type=file]{
     33                 position: absolute;
     34                 height: 100%;
     35                 width:100%;
     36                 top:0;
     37                 left:0;
     38             }
     39             .fileWrap{
     40                 background:#eee;
     41             }
     42             input[type=file]{
     43                 z-index: 2;
     44                 opacity: 0;
     45             }
     46             .upWrap > .imgWrap{
     47                 z-index: 1;
     48             }
     49             .selected_img{
     50                 height: 100%;
     51             }
     52             .upedImg{
     53                 z-index: 3 !important;
     54             }
     55             .upedImg > span.deleteImg{
     56                 position:absolute;
     57                 content: 'X';
     58                 width:20px;
     59                 font-size: 16px;
     60                 color:#ff0000;
     61                 background:rgba(0,0,0,0.6);
     62                 height:20px;
     63                 text-align: center;
     64                 line-height: 20px;
     65                 right:0;
     66                 top:0;
     67                 z-index:4;
     68             }
     69             
     70             .imgWrap{
     71                 width:100%;
     72                 height: 100%;
     73                 color:gray;
     74                 font-size: 72px;
     75                 position: absolute;
     76                 top:0;
     77                 left:0;
     78                 text-align: center;
     79             }
     80             .upload_btn{
     81                 width: 200px;
     82                 line-height: 59px;
     83                 color:#fff;
     84                 background: limegreen;
     85                 text-align: center;
     86                 border-radius: 10px;
     87                 margin: 20px auto 0;
     88             }
     89         </style>
     90 </head>
     91     <body>
     92         <div class="content clearFlex">
     93             <form action="" enctype="multipart/form-data">
     94                 <div class="upImg clearflex">
     95                     <div class="imgOnloadWrap">
     96                         <!-- <div class="upWrap">
     97                             <div class="imgWrap upedImg">
     98                                 <span class="deleteImg">X</span>
     99                                 <img src="" alt="" class="selected_img">
    100                             </div>
    101                         </div> -->
    102                     </div>
    103                     <div class="upWrap">
    104                         <div class="imgWrap">+</div>
    105                         <div class="fileWrap">
    106                             <input type="file" accept="image/gif,image/jpeg,image/jpg,image/png,image/svg" onchange="upImg(this)" class="open_picture"/>
    107                         </div>
    108                     </div>
    109                 </div>
    110             </form>
    111         </div>
    112         <div class="upload_btn">确认上传</div>
    113     </body>
    114     <script src="../assets/js/jquery.min.js"></script>
    115     <script>
    116         /*------------------------------上传图片---------------------------*/
    117         var imgFile = '';
    118         function upImg(obj){
    119             imgFile = obj.files[0];
    120             console.log(imgFile);
    121             var img = new Image();
    122             var fr = new FileReader();
    123             fr.onload = function(){
    124                 var htmlStr = '<div class="upWrap">';
    125                 htmlStr += '<div class="imgWrap upedImg"><span class="deleteImg">X</span>';
    126                 htmlStr += '<img src="'+fr.result+'" alt=""  class="selected_img"/>';
    127                 htmlStr += '</div>';
    128                 htmlStr += '</div>';
    129                 $('.imgOnloadWrap').append(htmlStr);
    130                 obj.value = '';
    131             }
    132             fr.readAsDataURL(imgFile);
    133         }
    134         /*-----------------------------删除图片------------------------------*/
    135         $(document).on('click','.upedImg .deleteImg',function(){
    136             //处理未来事件
    137             $(this).parent().parent().remove();
    138         })
    139         /*-----------------------------确认上传------------------------------*/
    140         function uploadImg(){
    141             var formData = new FormData();
    142             formData.append('src',2);
    143             formData.append('picture',imgFile);
    144 
    145             $.ajax({
    146                 url: '传输地址',
    147                 type: 'POST',
    148                 cache: false, //上传文件不需要缓存
    149                 data: formData,
    150                 processData: false, // 告诉jQuery不要去处理发送的数据
    151                 contentType: false, // 告诉jQuery不要去设置Content-Type请求头
    152                 success: function (res) {
    153                     console.log(res)
    154                     if(res.ret == 0){
    155                         console.log(上传成功)
    156                     }
    157                 },
    158                 error: function (err) {
    159                     console.log(err)
    160                 }
    161             })  
    162         }
    163     </script>
    164 </html>

    附支持的文件类型:

    *.3gpp  audio/3gpp, video/3gpp  3GPP Audio/Video
    *.ac3   audio/ac3   AC3 Audio
    *.asf   allpication/vnd.ms-asf  Advanced Streaming Format
    *.au    audio/basic AU Audio
    *.css   text/css    Cascading Style Sheets
    *.csv   text/csv    Comma Separated Values
    *.doc   application/msword  MS Word Document
    *.dot   application/msword  MS Word Template
    *.dtd   application/xml-dtd Document Type Definition
    *.dwg   image/vnd.dwg   AutoCAD Drawing Database
    *.dxf   image/vnd.dxf   AutoCAD Drawing Interchange Format
    *.gif   image/gif   Graphic Interchange Format
    *.htm   text/html   HyperText Markup Language
    *.html  text/html   HyperText Markup Language
    *.jp2   image/jp2   JPEG-2000
    *.jpe   image/jpeg  JPEG
    *.jpeg  image/jpeg  JPEG
    *.jpg   image/jpeg  JPEG
    *.js    text/javascript, application/javascript JavaScript
    *.json  application/json    JavaScript Object Notation
    *.mp2   audio/mpeg, video/mpeg  MPEG Audio/Video Stream, Layer II
    *.mp3   audio/mpeg  MPEG Audio Stream, Layer III
    *.mp4   audio/mp4, video/mp4    MPEG-4 Audio/Video
    *.mpeg  video/mpeg  MPEG Video Stream, Layer II
    *.mpg   video/mpeg  MPEG Video Stream, Layer II
    *.mpp   application/vnd.ms-project  MS Project Project
    *.ogg   application/ogg, audio/ogg  Ogg Vorbis
    *.pdf   application/pdf Portable Document Format
    *.png   image/png   Portable Network Graphics
    *.pot   application/vnd.ms-powerpoint   MS PowerPoint Template
    *.pps   application/vnd.ms-powerpoint   MS PowerPoint Slideshow
    *.ppt   application/vnd.ms-powerpoint   MS PowerPoint Presentation
    *.rtf   application/rtf, text/rtf   Rich Text Format
    *.svf   image/vnd.svf   Simple Vector Format
    *.tif   image/tiff  Tagged Image Format File
    *.tiff  image/tiff  Tagged Image Format File
    *.txt   text/plain  Plain Text
    *.wdb   application/vnd.ms-works    MS Works Database
    *.wps   application/vnd.ms-works    Works Text Document
    *.xhtml application/xhtml+xml   Extensible HyperText Markup Language
    *.xlc   application/vnd.ms-excel    MS Excel Chart
    *.xlm   application/vnd.ms-excel    MS Excel Macro
    *.xls   application/vnd.ms-excel    MS Excel Spreadsheet
    *.xlt   application/vnd.ms-excel    MS Excel Template
    *.xlw   application/vnd.ms-excel    MS Excel Workspace
    *.xml   text/xml, application/xml   Extensible Markup Language
    *.zip   aplication/zip  Compressed Archive

    本文仅支持上传一张图片,望知道上传多张图片方法的朋友分享一下。

  • 相关阅读:
    MapBox TileMill
    优秀电影
    Mapnik 编译安装过程
    Debian 入门安装与配置2
    学习opengl十大网站(转载)
    PostgresSQL 学习资料记录处
    c++模板编程-异质链表
    Linux-统一事件源
    三组I/O复用模型的比较
    ZigZag-LeetCode
  • 原文地址:https://www.cnblogs.com/dreamstartplace/p/10931809.html
Copyright © 2011-2022 走看看