Как «перезагрузить» изображение на сервер с помощью input type = "file" и ax ios? - PullRequest
0 голосов
/ 08 марта 2020

Я пишу VueJS заявление. Я использую топор ios для загрузки изображений на сервер. У меня есть <input type="file"> и я использую следующий код для отправки данных на сервер:

let formData = new FormData();
formData.append("image", self.image);

self.axios.post("/image/", 
        formData, 
        {headers: {"Content-Type": "multipart/form-data"}}
).then(response => // smth next

Теперь я хочу получить загруженное изображение с сервера и поместить его в файл на тот же <input type="file">, чтобы иметь возможность использовать предыдущий код еще раз для повторной загрузки загруженного изображения обратно на сервер.

Я перепробовал много вариантов, но последний выглядит так:

const self = this;
self.axios.get(`/image/${newValue}`).then(res => {
  self.file = new File(
    [new Buffer(res.data, "binary").toString("base64")],
    res.request.responseURL.split("/api/image/")[1],
    { type: res.headers["content-type"] }
  );

Изображение загружено и успешно загружено, но оно повреждено -> создано Файл .png не может быть открыт.

Еще одна деталь, которую я заметил: повторно загруженный файл всегда больше оригинала. Исходный файл был 810kb, перезагружен 8.4mb. Поэтому, вероятно, я делаю что-то не так: P

Буду признателен за любые предложения и ответит на любые дополнительные вопросы.

...