[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка при сохранении файлов на сервер. Нужна ваша
dhorh
Доброго времени суток. Несколько дней я работаю над загрузкой фалов, раньше у меня сё работало, но когда стал всё "переносить" - скрипт почему-то отказался работать...

У меня обычная загрузка фоток, не считая всякой всячины, которая делается между загрузкой и сохранением.

Я убрал всё лишнее, оставив только загрузку и сохранение фото - ничего лишнего.

При выводе массива $_FILE через var_dump или print_r, получаю следующие результаты:
Array ( [picture] => Array ( [name] => Скрин паспорта.jpg [type] => image/jpeg [tmp_name] => W:\userdata\temp\phpD95D.tmp [error] => 0 [size] => 151974 ) )

, где "Скрин паспорта.jpg" - это изначальное имя загружаемой фотографии,
а W:\userdata\temp\phpD95D.tmp - я так понимаю - это это локальное, временное местонахождения фала.
[error] - он правильно показывает эту ошибку, так как этого файла попусту не существует, если, к примеру, руками набрать в проводнике.
P.S. Я использую OpenServer в качестве локальной сборки, может быть в нём проблемы?
P.P.S. Подскажите вероятное решение данной проблемы, с чем она может быть связана?
vagrand
Хех ну вы чудак Рунге (с)
Может все же покажите код, который не работает, а то мои экстрасенсорные способности седня шото барахлят, видать солнечные бури.

_____________
Senior PHP developer: PHP5, MySQL, JavaScript, CakePHP, Yii/Yii2, Zend Framework, Smarty, XML/Xslt, JQuery, Jquery Mobile, Bootstrap, ExtJS, HTML, HTML5, CSS, Linux, SVN, Git, Memcached, Redis, MongoDB, Zend Guard, Ioncube, FFMpeg, PayPal, Webmoney, Qiwi, Facebook API, Vkontakte Api, Google API, Twitter Api, Steam Api.
Junior Android Developer: Android SDK, многопоточность, работа с HTTP запросами, JSON, SQLite, фрагменты.
dhorh
Цитата (vagrand @ 22.12.2012 - 11:27)
Хех ну вы чудак Рунге (с)
Может все же покажите код, который не работает, а то мои экстрасенсорные способности седня шото барахлят, видать солнечные бури.

Ну если вам это поможет, то вот:
/*РАЗДЕЛ ОБРАБОТКИ ИЗОБРАЖЕНИЯ*/
//рандомное имя файлу

function generatePassword($length = 8){
$chars = 'qwertyuiopasdfghjklzxcvbnm2345678923456789';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
$namefolder = date("dFY");
print_r($_FILES);
mkdir("thumbs/$namefolder", 0777);

// Пути загрузки файлов
$path = "thumbs/$namefolder/";
$pathGlobal ="thumbs/";

$tmp_path = 'static/temp/';
// Массив допустимых значений типа файла
$types = array('image/gif', 'image/png', 'image/jpeg');
// Максимальный размер файла
$size = 5242880;
// Обработка запроса
//Проверяем тип файла
//if (!in_array($_FILES['picture']['type'], $types))
//die('<p>Запрещённый тип файла. <a href="?">Попробовать другой файл?</a></p>');

// Проверяем размер файла

if ($_FILES['picture']['size'] > $size)
die('<p>Слишком большой размер файла. <a href="?">Попробовать другой файл?</a></p>');

// Функция изменения размера
// Изменяет размер изображения в зависимости от type:
// type = 1 - эскиз
// type = 2 - большое изображение
// quality - качество изображения (по умолчанию 75%)

function resize($file, $type = 1, $quality = null)
{
global $tmp_path;

// Ограничение по ширине в пикселях
$max_size = 240;
$hmax_size = 180;

// Качество изображения по умолчанию
if ($quality == null)
$quality = 100;

// Cоздаём исходное изображение на основе исходного файла
if ($file['type'] == 'image/jpeg')
$source = imagecreatefromjpeg($file['tmp_name']);
elseif ($file['type'] == 'image/png')
$source = imagecreatefrompng($file['tmp_name']);
elseif ($file['type'] == 'image/gif')
$source = imagecreatefromgif($file['tmp_name']);
else
return
false;
$src = $source;
// Определяем ширину и высоту изображения
$w_src = imagesx($src);
$h_src = imagesy($src);
// В зависимости от типа (эскиз или большое изображение) устанавливаем ограничение по ширине.
$w = $max_size;
$h = $hmax_size;
// Если ширина больше заданной
if ($w_src > $w or $h_src > $h)
{
// Вычисление пропорций
$ratio = $w_src/$w;
$ratio = $h_src/$h;
$w_dest = round($w_src/$ratio);
$h_dest = round($h_src/$ratio);
// Создаём пустую картинку
$dest = imagecreatetruecolor($w_dest, $h_dest);
// Копируем старое изображение в новое с изменением параметров
imagecopyresampled($dest, $src, 0, 0, 0, 0, $w_dest, $h_dest, $w_src, $h_src);
// Вывод картинки и очистка памяти
imagejpeg($dest, $tmp_path . $file['name'], $quality);
imagedestroy($dest);
imagedestroy($src);
return $file['name'];
}else
{
// Вывод картинки и очистка памяти
imagejpeg($src, $tmp_path . $file['name'], $quality);
imagedestroy($src);
return $file['name'];
}
}

$name = resize($_FILES['picture']);
echo "Переменная name = $name";
/* Загрузка файла и вывод сообщения
if (!@copy($tmp_path . $name, $path . $name))
echo '<p>Что-то пошло не так.</p>';
else*/

// Переименовываем полученный файл

$newName = "a_" . generatePassword(5) . "_". generatePassword(4) . ".jpg";
echo "Переменная newName = $newName";
rename ("thumbs/$namefolder/$name", "thumbs/$namefolder/$newName");

$thumbs = "$namefolder/\$newName";
echo "$thumbs";

// Удаляем временный файл
unlink($tmp_path . $name);


/*КОНЕЦ ОБРАБОТКИ ИЗОБРАЖЕНИЯ*/
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.