首页 新闻 会员 周边

ajax上传图片,偶尔会出现后台保存的图片有错误或者已损坏,请问可能是什么原因造成的?

0
[已解决问题] 解决于 2021-01-18 19:48

我是把固定区域截图后生成图片上传后台,大部分时候都没问题,偶尔会出现图片有错,打开图片的时候报错:因存在错误而无法显示。
代码如下:

function imgUpload(img2,id) {
        html2canvas($("#imgArea")[0]).then((canvas) => {
            var img1 = canvas.toDataURL();
            var data = new FormData();
            data.append("ImgFile", dataURLtoFile(img1, "authorize.png"));
            data.append("ImgFile2", dataURLtoFile(img2, "authorizeName.png"));
            var ajaxRequest = $.ajax({
                type: "POST",
                url: "/api/authorize/save?id=" + id,
                contentType: false,
                processData: false,
                data: data
            });
            ajaxRequest.done(function (param) {
                
            });
        })
    }
    function dataURLtoFile(dataurl, filename) {
        var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
            bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
        while (n--) {
            u8arr[n] = bstr.charCodeAt(n);
        }
        return new File([u8arr], filename, { type: mime });
    };
hangjy的主页 hangjy | 初学一级 | 园豆:4
提问于:2020-10-30 11:36
< >
分享
最佳答案
0

js里把图片转成base64字符串上传

奖励园豆:5
jqw2009 | 老鸟四级 |园豆:2439 | 2020-10-30 11:48

我本来就是获取到的base64,转成文件上传的,我试试直接上传字符串

hangjy | 园豆:4 (初学一级) | 2020-10-30 11:53

请问,这样做是有什么好处吗?

hangjy | 园豆:4 (初学一级) | 2020-10-30 12:09
其他回答(2)
1

可能和 ajax 同步异步有关系。换成同步试试

小小高 | 园豆:1095 (小虾三级) | 2020-10-30 13:57
0

在日常开发中,文件上传是必不可少的功能。如,用户头像,excel文件上传等等。但是,由于开发方式的问题,比如是单体应用还是前后端分离模式,导致实现上有些许的差异。

参考:

智客工坊 | 园豆:1855 (小虾三级) | 2020-11-02 13:37
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册