#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] с типом содержимого=составные/данные формы.