Отправьте данные изображения на сервер в формате int-array (двоичный) - PullRequest
0 голосов
/ 04 октября 2019

У меня есть один входной файл, загруженный в мой компонент для загрузки одного zip-изображения, после чего я хочу отправить только данные всех изображений (intArry) на сервер, используя любой тип тела, здесь я пытаюсь использовать данные формы, но это не такработай, так скажи, помогите, где я не прав, и предложите для этого, я не знаю, как добавить этот массив массива в данные формы ... вот моя функция, которая делает это

  let ZipF = e.target.files[0];
        let imagelinks1: string[] = [];
        let formData = new FormData();
        JSZip.loadAsync(ZipF).then((zip) => {

            try {
                zip.forEach((relativePath) => {
                    let parts = relativePath.split('.');
                    parts.pop();
                    let FileExtension = parts.join('.');
                    if (!(zip.files[relativePath].dir)) {

                        let ext = relativePath.substr(relativePath.indexOf('.') + 1);
                        if (ext != "jpg" && ext != "jpeg") {
                            this.setState({ errorMessage: 'Zip Must Contain JPG or JPEG' })
                            throw new Error();
                        }
                        else if ((FileExtension.match(/\//g) || []).length < 3) {
                            this.setState({ errorMessage: 'Zip Must Have Proper Folder Structure' })
                            throw new Error();
                        }
                        else {
                            zip.file(relativePath).async("uint8array").then(function (data) {
                                debugger
                                let filetype = 'jpg';
                                if (ext == "jpeg") {
                                    filetype = 'jpeg'
                                }
//suggest the solution here what i have to do...
                                formData.append(relativePath, new Blob([data], { type: "image/" + filetype }));
                            });
                            imagelinks1.push(relativePath);
                            this.setState({
                                errorMessage: ''
                            })
                        }
                    }
                });

            }
            catch (Error) {
                this.setState({ errorMessage: 'Invalid Zip', zipFilename: 'Invalid Zip' })
            }

data-array of one image

...