#javascript #php #iis #xmlhttprequest
#javascript #php #iis #xmlhttprequest запрос
Вопрос:
У меня есть веб-приложение, которое позволяет пользователям делать снимки с помощью веб-камеры, которые затем отображаются в виде HTML-холста. Затем холст успешно преобразуется в изображение, которое отображается и затем отправляется на сервер с помощью XMLHttpRequest. Этот процесс происходит при запуске следующей функции JS:
function convertCanvasToImage() {
let canvas = document.getElementById("canvas");
let image = new Image();
document.getElementById("profile").src = canvas.toDataURL();
var newName = canvas.toDataURL();
xhr = new XMLHttpRequest();
xhr.open('POST', 'saveimage.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(encodeURI('imgBase64=' newName));
}
PHP-код, saveimage.php , затем обрабатывает изображение для сохранения на сервере:
define('UPLOAD_DIR', 'uploads/new.png');
$img = $_POST['imgBase64'];
$img = str_replace('data:image/png;base64,', '', $img);
$img = str_replace(' ', ' ', $img);
$data = base64_decode($img);
$file = UPLOAD_DIR;//. uniqid() . '.png';
$success = file_put_contents($file, $data);
print $success ? $file : 'Unable to save the file.';
Этот процесс работает точно так, как задумано, на локальном сервере (XAMPP), но при запуске в IIS (IIS10 на Windows Server 2019) я получаю сообщение «Не удалось сохранить файл». сообщение.
Я предполагаю, что это проблема безопасности с IIS, но я не уверен, связано ли решение с чем-то с заголовками PHP, что-то с CORS в IIS или что-то совсем другое. Есть предложения?
Комментарии:
1. перед сохранением проверьте разрешение каталога или результат вывода
2. Спасибо, редактирование разрешения каталога решило проблему
Ответ №1:
Подтверждено, что это была проблема с правами доступа к папке
Комментарии:
1. Ваша проблема решена? Если проблема решена, пожалуйста, поделитесь своим ответом, чтобы помочь другим, у кого похожие проблемы.