zoukankan      html  css  js  c++  java
  • 前端上传组件

    http://www.cnblogs.com/KTblog/p/4740852.html

    效果:

    • 起始界面。

    -------------

    • 可以上上传单个文件。

    -------------

    • 可以上传多个文件。

    ---------------

    • 点击上传。
    • 后台使用php接收上传来的文件。其它语言相同,都是接收上传的文件。

    项目结构图:

    代码:

    upload.html代码:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>最基本的使用——plupload演示demo</title>
        <script src="//cdn.bootcss.com/jquery/2.2.0/jquery.js"></script>
        <script src="js/plupload.full.min.js"></script>
        <style>
        body{ font-size: 12px;}
        body,p,div{ padding: 0; margin: 0;}
        .wraper{ padding: 30px 0;}
        .btn-wraper{ text-align: center;}
        .btn-wraper input{ margin: 0 10px;}
        #file-list{ width: 350px; margin: 20px auto;}
        #file-list li{ margin-bottom: 10px;}
        .file-name{ line-height: 30px;}
        .progress{ height: 4px; font-size: 0; line-height: 4px; background: orange; width: 0;}
        .tip1{text-align: center; font-size:14px; padding-top:10px;}
        .tip2{text-align: center; font-size:12px; padding-top:10px; color:#b00}
        .catalogue{ position: fixed; _position:absolute; _width:200px; left: 0; top: 0; border: 1px solid #ccc;padding: 10px; background: #eee}
        .catalogue a{ line-height: 30px; color: #0c0}
        .catalogue li{ padding: 0; margin: 0; list-style: none;}
        </style>
    </head>
    <body>
        <div class="wraper">
            <div class="btn-wraper">
                <input type="button" value="选择文件..." id="browse" />
                <input type="button" value="开始上传" id="upload-btn" />
            </div>
            <ul id="file-list">
    
            </ul>
        </div>
        
        <script>
            var uploader = new plupload.Uploader({ //实例化一个plupload上传对象
                browse_button : 'browse',
                url : 'FileUpload.php',
                flash_swf_url : 'js/Moxie.swf',
                silverlight_xap_url : 'js/Moxie.xap',
                
                /*类型验证*/
                filters: {mime_types : [ //只允许上传图片和zip文件
                    { title : "Image files", extensions : "jpg,gif,png" }, 
                    { title : "Zip files", extensions : "zip" }
                  ],
                  max_file_size : '400kb', //最大只能上传400kb的文件
                  prevent_duplicates : true //不允许选取重复文件
                },
    
                /*携带参数*/
                multipart_params: {
                  one: '1',
                  two: '2',
                  three: { //值还可以是一个字面量对象
                    a: '4',
                    b: '5'
                  },
                  four: ['6', '7', '8']  //也可以是一个数组
                }
            });
            
            uploader.init(); //初始化
    
            //绑定文件添加进队列事件
            uploader.bind('FilesAdded',function(uploader,files){
            for(var i = 0, len = files.length; i<len; i++){
                    var file_name = files[i].name; //文件名
                    var file_size = files[i].size; //大小
                    var file_type = files[i].type; //类型
                    //构造html来更新UI
                    var html = '<li id="file-' + files[i].id +'"><p class="file-name" style="800px;">文件名:' + file_name + ' -- 大小:'+ file_size +' -- 类型:'+ file_type +'</p><p class="progress"></p></li>';
                    $(html).appendTo('#file-list');
                }
            });
    
            //绑定文件上传进度事件
            uploader.bind('UploadProgress',function(uploader,file){
                $('#file-'+file.id+' .progress').css('width',file.percent + '%');//控制进度条
            });
    
            //上传按钮
            $('#upload-btn').click(function(){
                uploader.start(); //开始上传
            });
        </script>
    </body>
    </html>

    FileUplaod.php:

    <?php
    print_r($_POST);
    echo '<hr/>';
    print_r($_FILES);

    //+++++++++++++++++++++++++++++++

    使用动态参数:

    先在属性中设置要上传的参数:

    然后再上传的前一刻,进行设置参数的值。此时的参数值,就是获取的最新参数。直接提交,就连同上传文件,以及参数一并上查。

    //++++++++++++++++++++++++++++

     http://snowcoal.com/article/423.html

    删除添加的上传文件:

    DOM结构:

    生成结构的代码:

    //绑定文件添加进队列事件
    uploader.bind('FilesAdded',function(uploader,files){
    for(var i = 0, len = files.length; i<len; i++){
            var file_name = files[i].name; //文件名
            var file_size = files[i].size; //大小
            var file_type = files[i].type; //类型

    //构造html来更新UI
    var html = '<div style="padding: 10px 0 10px 20px;" class="pic_list" id="' + files[i].id + '">文件名:' + files[i].name + ' -- (大小:' + plupload.formatSize(files[i].size) + ' -- 类型:' + files[i].type + ') <b class="pic_delete" data-val='+files[i].id+' style="color:#ff0000; cursor:pointer;">删除</b></div>';

    $(html)
    .appendTo('#file-list'); } });

    点击删除按钮,的函数,放在同一个js文件中:

    //删除上传文件
    $(document).on('click','.pic_list b.pic_delete',function(){
        $(this).parent().remove();
        var toremove = '';
        var id=$(this).attr("data-val");
        for(var i in uploader.files){
            if(uploader.files[i].id === id) { toremove = i; }
        }
        uploader.files.splice(toremove, 1); 
    });
  • 相关阅读:
    hnoi2013
    图片屏幕LibGdxGearJoint齿轮关节
    数据属性WEKA学习总结
    函数调用[置顶] C/C++在main函数之前和之后会做些什么
    系统控制2013北京照明展后记
    终端安装解决svn "cannot set LC_CTYPE locale"的问题
    系统服务器Fedora和Red Hat Enterprise Linux实用指南(第6版)(上、下册)( 入行必读的Linux圣经)
    文件数据库Android面试题(三)
    UML中的活动图
    UML模型
  • 原文地址:https://www.cnblogs.com/KTblog/p/5118181.html
Copyright © 2011-2022 走看看