Я пытался сделать это:
- Загрузить фото с ПК в виде строки base64 ("data:image/jpeg;base64,...")
- PHP сохранит эту фотографию в полном разрешении как .jpg и создаст миниатюру 160x160 .png.
- Затем он вернет ссылку на полноразмерное изображение, и пользователь обрежет это фото с помощью Jcop и отправит размеры автоматически, когда пользователь подтвердит
Я сделал это довольно далеко, и он отлично работает на моем локальном Apache. Но когда я переместил его на удаленный веб-хостинг (у меня нет доступа к оболочке), первый запрос ajax (когда пользователь отправляет фото) возвращает 401 Unauthorized. Я искал неправильные права доступа к файлам, но не уверен, что это проблема разрешений photo.php или разрешений загруженного изображения. Я установил 0650 для всех каталогов.
Захваченный запрос: http://netbox.wayo.cz/401unauthorized.PNG
Вот код, который сохраняет фото:
if($image = imagecreatefromstring($content))
{
// save full-size photo
if($photo = imagejpeg($image,$file_path,$control->get_config('upload_photo_quality')))
{
// get photo params
list($width,$height,$type,$attr) = getimagesize($file_path);
// create photo thumbnail
$thumb_name = uniqid().'.png';
$thumb_path = DIR_DATA.'thumbs/'.$thumb_name;
imagepng($image,$thumb_path,$control->get_config('upload_photo_compression'));