Как загрузить изображение в ImgBB API с помощью Javascript в firefox дополнении - PullRequest
1 голос
/ 23 марта 2020

Информацию об API можно найти здесь . Он не дает никаких подробностей для использования с Javascript, только с curl.

Опробовал множество различных методов из старых постов здесь, но это самый близкий, который я получил до сих пор.

function main() {
    var ul = document.querySelector('.redactor_toolbar')

    if(ul != null)
    {
        var new_li = document.createElement('li')
        var new_a = document.createElement('a')
        new_li.appendChild(new_a)
        ul.appendChild(new_li)

        new_a.addEventListener('click', function() {
            var input = document.createElement('input');
            input.type = 'file';

            input.onchange = e => {
                uploadImage(e.target.files[0])
            }

            input.click();
        })
    }
 }

 async function uploadImage(img)
 {
    var form = new FormData();
    form.append('image', img)

    var url = 'https://api.imgbb.com/1/upload?key=8d5867a9512390fb5e5dc97839aa36f6' 

    const config = {
        method: 'POST',
        headers: {
            'Accept': 'application/json',
            'Access-Control-Allow-Origin': '*',
            'Connection': 'keep-alive',
            'Content-Type': 'application/json',
        },
        body: form
    }

    const response = await fetch(url, config)
    const json = await response.json()

    console.log(response)
 }

Ответ JSON:

Response

1 Ответ

1 голос
/ 29 марта 2020

- это та же проблема для приложения mi.

Создать

<input type="file" id="input_img" onchange="fileChange()" accept="image/*">

Код javascript

function fileChange(){
var file = document.getElementById('input_img');
var form = new FormData();
form.append("image", file.files[0])

var settings = {
  "url": "https://api.imgbb.com/1/upload?key=8d5867a9512390fb5e5dc97839aa36f6",
  "method": "POST",
  "timeout": 0,
  "processData": false,
  "mimeType": "multipart/form-data",
  "contentType": false,
  "data": form
};


$.ajax(settings).done(function (response) {
  console.log(response);
  var jx = JSON.parse(response);
  console.log(jx.data.url);


});

}

Эта работа для меня

...