0

我在互联网上找到了这段代码,我想使用它,但有一个错误。这是错误(在 Firefox 中测试)

未捕获的类型错误:FileReader.readAsBinaryString:参数 1 不是对象。

这个想法是从几个上传的文件创建一个 zip 文件并通过电子邮件发送。

<html>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script src="https://smtpjs.com/v3/smtp.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.5/jszip.js"></script>

<body>
    <input type="file" id="fileupload" onchange="uploadFileToServer()" multiple />
</body>

<script>
    function uploadFileToServer() {
        var zip = new JSZip();
        var numberOfFiles = event.srcElement.files.length;
        var numberOfProcessedFiles = 0;
        for (var i = 0; numberOfFiles; i++) {
            (function (i) {
                var file = event.srcElement.files[i];
                var reader = new FileReader();
                reader.readAsBinaryString(file);
                reader.onload = function () {
                    numberOfProcessedFiles++;
                    zip.file(file.name, btoa(reader.result), { base64: true });
                    if (numberOfProcessedFiles == numberOfFiles) {
                        zip.generateAsync({ type: "base64" })
                            .then(function (content) {
                                var datauri = "data:application/x-zip-compressed;base64," + content;
                                Email.sendWithAttachment("YOUR@EMAIL.com",
                                    "THEIR@EMAIL.com",
                                    "This is the Subject ",
                                    "This is the Body - see file.zip attachment!",
                                    "****SMTP HOST****",
                                    "****SMTP USERNAME****",
                                    "****SMTP PASSWORD****",
                                    datauri,
                                    function done(message) {
                                        alert("Message sent OK")
                                    }
                                );
                            });
                    }
                };
            })(i);
        }
    }
</script>
</script>

</html>

4

0 回答 0