Laravel Javascript Image / Pdf с URL-адреса для чтения файлов - PullRequest
0 голосов
/ 13 июня 2019

У меня есть объект FormData, в который я хотел бы добавить файл в моем случае .png и .pdf файлы.

Пока я сделал это:

    async setData(file) {
        const formData = new FormData();
        formData.append('type', file.type);
        formData.append('file', await this.fileToBlob(file.location)); // filereader image object which can be sent to the server
        formData.append('name', file.new_name);
        formData.append('url', file.location);

        return formData;
    },

Я могу заполнить все поля правильно, за исключением файла, который должен содержать сам файл. Я не могу указать правильный тип BLOB-объекта в поле файла.

Для этого я попробовал этот метод:

    async fileToBlob(location) {
        const base64 = await this.imgTob64(location); // returns the path of the image / the link in this case since it is saved in the cloud

        return fetch(base64)
            .then(res => res.blob())
            .then(blob => console.log(blob))  
            .catch(error => console.log(error))
    };

Во-первых, он не работает, а во-вторых, он принимает только строку base64, которая подходит для изображений, но не для файлов PDF.

На сайте laravel я получаю файлы из цифрового океана с s3, как api:

public function getFileLocation()
{
    return Storage::disk('do_spaces')->url('files/'.$this->fileName);
}

Моя текущая мысль заключается в том, чтобы в основном преобразовать файл из URL-адреса в блоб, вернуть его клиенту и добавить в FormData, но как мне создать правильный BLOB-объект из URL-адреса файла в javascript?

...