Как преобразовать объект ObjectURL в вставляемый большой двоичный объект БД

#javascript

#язык JavaScript

Вопрос:

Отправка PHP ретвала URL-адреса объекта, созданного из изображения ( blob:http://... ), и использование PHP base64_encode() вместе с file_get_contents() возвращением ошибки, утверждающей, что нет потока или файла.

Комментарии:

1. URI больших двоичных объектов указывают на данные в памяти или на диске пользователя. Ваш PHP-скрипт ничего не может с этим поделать, потому что данные недоступны вашему серверу. Вам нужно отправить данные, на которые указывает этот URI, вместо отправки самого URI. Не зная, как вы сгенерировали URI, в первую очередь, мы не можем помочь вам в отправке правильных данных.

2. Это просто локальный большой двоичный объект, созданный с URL.createObjectURL() помощью . Есть ли какой-нибудь способ получить реальное изображение, а не просто URI?

3. Отправьте тот же большой двоичный объект, который вы передали в createObjectURL(большой двоичный объект).

Ответ №1:

Как насчет отправки URL-адреса изображения. затем используйте file_get_contents(‘http://…’), чтобы получить содержимое файла изображения.

Например, URL-адрес вашего изображения является http://example.com/test.jpg

JS

 // if image is a link axiso.post(url, {image: "http://example.com/test.jpg"})  // if image is file select from local, upload file let data = new FormaData(); formData.append("image", this.files[0]); axiso.post(url, data, {headers: {'Content-Type': 'multipart/form-data'}})  

PHP

 // get file content from image link file_get_contents('http://example.com/test.jpg')  // get content from upload file $name= "image"; file_get_contents($_FILES[$name]);  

Комментарии:

1. Он основан на событии изменения типа входного файла. Загруженное изображение нигде не хранится, мы просто меняем источник элемента HTML img на большой двоичный объект файла. :: onchange="document.getElementById('character-mugshot').src = window.URL.createObjectURL(this.files[0])"

2. @Nathan, тогда вы можете просто загрузить файлы[0] с типом содержимого=составные/данные формы.