Dopamine . 2023-06-02 14:14 采纳率: 100%
浏览 60
已结题

前端js压缩图片后怎么把图片放回input中让表单提交的是压缩后的图片而不是原图

前端js压缩图片后怎么把图片放回input中让表单提交的是压缩后的图片而不是原图
部分代码:

$(function(){
        $(document).off('change',"input[type=file]").on('change',"input[type=file]",function (e){
            const imageFile = e.target.files[0]
            const imgUrl = URL.createObjectURL(imageFile)
            const imgEle = document.createElement('img')
            imgEle.src = imgUrl
            imgEle.onload = function () {
                const canvas = document.createElement('canvas')
                const ctx = canvas.getContext('2d')
                canvas.width = imgEle.width
                canvas.height = imgEle.height
                ctx.drawImage(imgEle, 0, 0)
                const datas= canvas.toDataURL('image/jpeg', 0.3)
                var arr = datas.split(','),
                    mime = arr[0].match(/:(.*?);/)[1],
                    bstr = atob(arr[1]),
                    n = bstr.length,
                    u8arr = new Uint8Array(n);
                while (n--) {
                    u8arr[n] = bstr.charCodeAt(n);
                }
                const file = new File([u8arr], $("input[type=file]").name, {type: mime});
                file.lastModifiedDate = new Date();
                const arrayFiles=Arrays.from(e.target.files)
                arrayFiles.push(file);
                
            }
        });
    });

  • 写回答

4条回答 默认 最新

  • usp1994 2023-06-02 14:30
    关注
    // 创建一个新的FormData对象
                const formData = new FormData();
                // 将压缩后的图片文件添加到FormData中
                formData.append('image', file);
                // 发送ajax请求
                $.ajax({
                    url: 'your_upload_url',
                    type: 'POST',
                    data: formData,
                    processData: false,
                    contentType: false,
                    success: function (data) {
                        // 处理上传成功后的逻辑
                    },
                    error: function (xhr, status, error) {
                        // 处理上传失败后的逻辑
                    }
                });
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月5日
  • 已采纳回答 6月5日
  • 创建了问题 6月2日

悬赏问题

  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
  • ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
  • ¥100 华为手机私有App后台保活
  • ¥15 sqlserver中加密的密码字段查询问题
  • ¥20 有谁能看看我coe文件到底哪儿有问题吗?
  • ¥20 我的这个coe文件到底哪儿出问题了
  • ¥15 matlab使用自定义函数时一直报错输入参数过多
  • ¥15 设计一个温度闭环控制系统
  • ¥100 rtmpose姿态评估