百度 WebUploader 单图片上传 简单的使用方法

小记一次使用WebUploader的基本方法,如有欠妥,恳请指教~

感谢Baidu FEX 团队开发出这么好的上传组件

  1. 引入资源
    这儿不过多赘述了,官方Getting Started已经写的很明白了,我直接用了demo上的代码。

  2. 图片上传option

 // 初始化Web Uploader
 uploader = WebUploader.create({
    // 自动上传。
    auto: true,
    
    // 选择文件的按钮。可选。
    // 内部根据当前运行是创建,可能是input元素,也可能是flash.
    pick: {
        id: '#filePicker',
        multiple: false//选图片时禁用多选
     },

    //只上传一个
    //fileNumLimit: 1,

    // 只允许选择文件,可选。
    accept: {
        title: '请选择JPG图片',
        extensions: 'jpg,jpeg',
        mimeTypes: 'image/*'
    },

    //配置压缩图片
    compress:{
        compressSize: 1048576,//不超过此字节数不会压缩图片
        preserveHeaders: false,//是否保存头部meta信息
        width: 518,//1295*413
        heigtht: 826,
        quality: 100//图片质量
    }

 })

只上传一个//fileNumLimit: 1
这里把上传队列数注释是因为业务需要,当选完照片又想换掉,就需要再次执行,如果不放开就不能再加入图片进入队列了。

	//当文件被加入队列之前触发
    uploader.on("beforeFileQueued", function () {
	    //取到所有文件队列
        var files = uploader.getFiles();
        //如果有文件说明是再次上传,清除掉缩略图再重置以前的队列
        if (files.length) {
            $("#" + files[files.length - 1].id).remove();//清掉缩略图
            uploader.reset();//清掉队列
        }
    });
    // 文件上传成功,给item添加成功class, 用样式标记上传成功。
    uploader.on('uploadSuccess', function (file,res) {
        $("#imgname").val(res._raw);//服务器端返回的数据
        $('#' + file.id).addClass('upload-state-done');

    });

    // 完成上传完了,成功或者失败,先删除进度条。
    uploader.on('uploadComplete', function (file) {
        $('#img').remove();//清除页面图片为新图片缩略图让位
        $('#' + file.id).find('.progress').remove();
    });

这里只写了上传单图片需要的option,全部代码请根据官方Demo的js源码进行修改

百度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、付费专栏及课程。

余额充值