可以改变表单图像仍然作为文件发送?

时间:2016-12-30 00:57:39

标签: javascript html5

是否可以在javascript中更改用户上传的图像,并将更改后的文件作为文件发布到服务器而不是base64表示?

我一直在使用一个base64编码图像的库,允许裁剪和旋转等。然后它将base64字符串发布到服务器,当您有多个大文件时,这会在浏览器中引起很多麻烦。

编辑: 根据请求添加一些示例代码。只是我尝试过的当前改动。

.submit(function(e) {
                    e.preventDefault();

                    window.fd = new FormData(e.target);

                    var imgs = (window.fd.getAll('icon[]') || []).map(function(str) {
                        return JSON.parse(str);
                    });

                    fd.delete('icon[]');

                    var promises = imgs.map(function(img) {
                        return fetch(img.output.image)
                            .then(function(res) { return res.blob() })
                            .then(function(blob) {
                                window.fd.append('icon[]', blob, 'filename')
                            });
                    });

                    $.when(promises).then(function() {
                        console.log('sending?');
                        var oReq = new XMLHttpRequest();
                        oReq.open("POST", $('#ignite-campfire').attr('action'), true);
                        oReq.onload = function(oEvent) {
                            console.log('tester', fd.getAll('icon[]'));
                        };
                        oReq.send(window.fd);
                    });

0 个答案:

没有答案