百度上传webuploader

一.注意细节

1.不能重复上传问题?

根据查看webuploader文档 里面有个duplicate属性,是可选的, true为可重复 ,false为不可重复 默认为undifind 也是不可重复。

所以在 pick: '#filePicker',下面加上duplicate :true,

2.为什么点击“”上传”按钮,弹出框会延迟时间?


accept: {
        title: 'Images',
        extensions: 'gif,jpg,jpeg,bmp,png',
        mimeTypes: 'image/*'
    }

要把mimeTypes改为 'image/jpg,image/jpeg,image/png'。如下替换上面的


accept: {
            title: 'Images',
            extensions: 'gif,jpg,jpeg,bmp,png',
            mimeTypes: 'image/jpg,image/jpeg,image/png'
        }


3.上传图片被压缩

 解决办法: 在uploader实例化的时候,加

var uploader = new WebUploader.Uploader({
    compress: null; 初始状态图片上传前不会压缩
       compressSize : 0//单位字节,如果图片大小小于此值,不会采用压缩
});


4.文件接收服务端,上传成功

        server: 'http://2betop.net/fileupload.php',

这个只是为了应急时用的,真的要上传成功,需要在项目中有:


这三个文件,然后在upload.js文件中修改它们的路径

var swf = 'expressInstall.swf';

 // 实例化
uploader = WebUploader.create({
swf: 'Uploader.swf',
server: './server/fileupload.php',
 
})

文件接收服务端,:server/fileupload.php

文件上传的位置:server里的upload文件


5.改变缩略图的大小

            // 优化retina, 在retina下这个值是2
            ratio = window.devicePixelRatio || 1,

            // 缩略图大小
            thumbnailWidth = 200 * ratio,
            thumbnailHeight = 200 * ratio,

只要修改这“200”的数字就好


6.获取图片链接,以及原图的大小


图片的链接就src,   原图的大小(没有压缩后的)只要把thumbnailWidth, thumbnailHeight这俩个参数改为1



7.删除图片

(1).删除单张

function removeFile (file) {
            var $li = $('#'+file.id);
            delete percentages[ file.id ];
            updateTotalProgress();
            $li.off().find('.file-panel').off().end().remove();
  }

这是自带的 removeFile (file)方法

只要点击删除按钮中调用:

uploader.removeFile( file );

(2).删除多张图片

选中多个图片,点击删除按钮进行删除

$('.delbtn').on('click',function(){
                    AMUI.dialog.confirm({ 
                        title: '系统提示', 
                        content: '确认删除这图片吗?', 
                        onConfirm: function() { 
                            var sele_id=[];
                            var checked_li=$("#filelist input[name=img]:checked").parents('li');
                            for(var i=0;i<checked_li.length;i++){
                                sele_id[i]=checked_li[i].id;
                                uploader.removeFile(sele_id[i]);
                                var $li = $('#'+ sele_id[i]);
                                $li.off().remove();
                            } 
                        }, 
                        onCancel: function() { 
                            return false;
                        } 
                    });
                })


8.上传错误提示

       var uploader = WebUploader.create({
               fileNumLimit: 300,// 圖片上傳數量限制
              fileSizeLimit: 200 * 1024 * 1024,    // 200 M
               fileSingleSizeLimit: 50 * 1024 * 1024 ,   // 單張圖片大小限制
})

        uploader.on('error', function (code) {
            var err = '';
            switch (code) {
                case 'F_EXCEED_SIZE':
                    err += '单张图片大小不得超过' +  uploader.options.fileSingleSizeLimit + 'kb!';
                    break;
                case 'Q_EXCEED_NUM_LIMIT':
                    err += '最多只能上传' +  uploader.options.fileNumLimit + '张!';
                    break;
                case 'Q_EXCEED_SIZE_LIMIT':
                    err += '上传图片总大小超出100M!';
                    break;
                case 'Q_TYPE_DENIED':
                    err += '无效图片类型,请上传正确的图片格式!';
                    break;
                default:
                    err += '上传错误,请刷新重试!';
                    break;
            }
            dialog.alert('系統提示', err);//弹出框(解决妹子UI )
            return false;
        });


 fileSingleSizeLimit 就是一个文件大小最大多少,   

 fileSizeLimit总的,比如你设置10M    你选了10个文件,那这10个文件加起来最多只能10M


9.上传图片时只能选择一张图片上传,不能多张图片同时上传

 multiple: false加载pick中

uploader = WebUploader.create({
            pick: {
                id: '#filePicker',
                multiple: false,
                label: '点击选择图片'

  },

10.进度条--progress

11.

uploader.refresh();//重置uploader,目前只重置了文件队列

12.上传完成时,重置一下:uploader.reset()




二.使用

要下载webuploader的文件:webuploader.css  webuploader.js

1.html文件

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>WebUploader演示</title>
    <link rel="stylesheet" type="text/css" href="webuploader.css" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="wrapper">
        <div id="container">
            <!--头部,相册选择和格式选择-->

            <div id="uploader">
                <div class="queueList">
                    <div id="dndArea" class="placeholder">
                        <div id="filePicker"></div>
                        <p>或将照片拖到这里,单次最多可选300张</p>
                    </div>
                </div>
                <div class="statusBar" style="display:none;">
                    <div class="progress">
                        <span class="text">0%</span>
                        <span class="percentage"></span>
                    </div><div class="info"></div>
                    <div class="btns">
                        <div id="filePicker2"></div><div class="uploadBtn">开始上传</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="webuploader.js"></script>
    <script type="text/javascript" src="upload.js"></script>
</body>
</html>


  需要整体的项目,可以从这里下载:webuploader上传图片


  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
百度WebUploader是一个基于HTML5的文件上传组件,它支持多文件、分片上传、断点续传等功能。要实现图片批量上传,可以结合PHP来完成。 首先,引入WebUploader插件及其样式文件。然后在HTML中创建一个容器,用来展示上传按钮和上传结果的反馈信息。 接下来,在PHP文件中设置图片上传的相关配置。首先要指定上传的文件类型为图片类型,通过设置`accept`属性为`image/*`实现。 在PHP文件中,使用`$_FILES`来获取上传的文件信息。通过遍历`$_FILES`数组,可以获取到每个文件的相关属性,如文件名、大小、临时路径等。 然后,可以使用PHP的文件处理函数来对每个上传的文件进行处理,比如判断文件大小是否在限定范围内,判断文件类型是否为图片等。可以使用`getimagesize()`函数来判断文件是否为图片。 对于合法的图片文件,可以使用`move_uploaded_file()`函数将其从临时目录移动到指定的目录中,同时生成新的文件名,以防止文件名重复。可以使用`uniqid()`函数生成一个唯一的文件名,拼接上原文件的后缀名。 在处理完所有上传的文件后,可以将结果返回给前端页面。可以通过`json_encode()`函数将结果以JSON格式返回,其中包括上传成功的文件名和上传失败的文件列表。 最后,在前端页面的JavaScript代码中,使用百度WebUploader的API方法来实现上传功能。通过监听`fileQueued`事件,将每次选择的文件添加到队列中。可以通过设定`auto=true`来将文件自动上传。 在监听到`uploadSuccess`事件时,可以获取到上传成功的文件名,可以使用JavaScript动态生成一个缩略图,并显示在页面上。 总结起来,实现百度WebUploader图片批量上传PHP,主要包括:引入WebUploader插件和样式文件、在PHP中设置文件上传的配置、通过`$_FILES`获取上传文件的信息、判断上传的文件是否为图片并处理、返回上传结果给前端页面、在前端页面通过监听事件实现上传功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值