请问,jq上传图片到服务端怎么弄,而且能在网页预览图片

发布于 2022-09-05 23:38:52 字数 44 浏览 25 评论 0

请问,jq上传图片到服务端怎么弄,而且能在网页预览图片,有没有例子能看一下

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

兮颜 2022-09-12 23:38:52

曾经写过的一个方法,看能不能用,有些es6的语法可以抽掉。

let uploadImg = () => { 
    let filechooser = $('.filechooser'); //点击上传的容器,因为我这里多个
    // 200 KB 对应的字节数
    const maxsize = 200 * 1024;
    filechooser.each(function(i, item){
        $(item).on('change',function(){ //调用change方法
            let file = this.files[0];
            let _this = this;

            // 接受 jpeg, jpg, png 类型的图片
            if (!/\/(?:jpeg|jpg|png)/i.test(file.type)) return;

            var reader = new FileReader();
            reader.onload = function() {
                var result = this.result;
                //License = result;
                var img = new Image();

                // 如果图片小于 200kb,不压缩
                if (result.length <= maxsize) {
                    toPreviewer(_this,result,i);
                    return;
                }

                img.onload = function() {
                    var compressedDataUrl = compress(img, file.type);
                    //License_back = compressedDataUrl;
                    toPreviewer(_this,compressedDataUrl,i);
                    img = null;
                };

                img.src = result;
            };

            reader.readAsDataURL(file);
            
            
        });
    });
    
    //预览
    let toPreviewer = (_this,dataUrl,i) => {
        console.log(dataUrl); 
    };


    let compress = (img, fileType) => {
        var canvas = document.createElement("canvas");
        var ctx = canvas.getContext('2d');

        var width = img.width;
        var height = img.height;

        canvas.width = width;
        canvas.height = height;

        ctx.fillStyle = "#fff";
        ctx.fillRect(0, 0, canvas.width, canvas.height);
        ctx.drawImage(img, 0, 0, width, height);

        // 压缩
        var base64data = canvas.toDataURL(fileType, 0.75);
        canvas = ctx = null;

        return base64data;
    };

};

export default uploadImg;
躲猫猫 2022-09-12 23:38:52

URL.createObjectURL实现预览,用formdata上传,具体请参考我的博客链接

好久不见√ 2022-09-12 23:38:52

上传图片,用<input type=file /> 表单上传嘛
至于图片预览,要用fileReader
例子:

$("input[type=file]").onchange(function(file){
    if(file.files&&fife.files[0]){
        var img=document.getElementById("img");
        var reader = new FileReader();
        reader.onload = function (evt) { img.src = evt.target.result; }
        reader.readAsDataURL(file.files[0]);
    }
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文