Загрузка изображения прервана после изменения сервера на php 5.6

Этот код работал хорошо, пока мой сервер не обновился до PHP 5.6.

<?php

if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {
$imageData = $GLOBALS['HTTP_RAW_POST_DATA'];

$filteredData = substr($imageData, strpos($imageData, ",")+1);
$unencodedData = base64_decode($filteredData);

$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
$fp = fopen('upload/' . $fn, 'w');
fwrite($fp, $unencodedData);
fclose($fp);
}

Я новичок в PHP, настраивающий код с открытым исходным кодом, когда мне это нужно.

-1

Решение

Да «HTTP_RAW_POST_DATA» был виновником. А также setRequestHeader больше не принимает подчеркивания.
В ответ на ваш вопрос junkfoodjunkie это для этого http://www.screentoys.com
Я построил его как учебный проект несколько лет назад, но функция «загрузить свою фотографию и сохранить ее» перестала работать, поэтому мой пост. Я не трогал его довольно долго, и поэтому заметил только недавно.
После некоторых экспериментов вот исправление:

$img = file_get_contents("php://input");
$img = str_replace('data:image/jpeg;base64,', '', $img);
$img = str_replace(' ', '+', $img);
$data = base64_decode($img);
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
file_put_contents('upload/'.$fn, $data);

Пришлось поменять:
xhr.setRequestHeader («X_FILENAME», dropOneName);
чтобы:
xhr.setRequestHeader («X-FILENAME», dropOneName);
в JS также.

Сохраняет изображение перетаскивания холста на сервер.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector