[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемка при загрузке файлов. ошибка канешь тупая
Страницы: 1, 2
Shkiper
Всем привет. Использую загрузку файлов:

$toUpload = $_SERVER['DOCUMENT_ROOT'] . "/uploads/avatars/original/";
preg_match("#[a-z0-9_]\.(jpeg|png|gif|jpg)#", $name, $av);
$ava_type = isset($av[1]) ? $av[1]:"jpg";
$toUpload = $toUpload . $login . "." . $ava_type;
if(move_uploaded_file($tmp, $toUpload))
{
.......
}
else
{
$error[] = "Во время загрузки аватара произошла ошибка. Попробуйте заново<br />" . $toUpload . "<br />" . $mini_avatar;
}

Мне пишет что во время загрузки произошла ошибка и т.д. -почему? ведь все правильно написано?
kyzmichev



if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES["filename"]["tmp_name"]))
{
// Если файл загружен успешно, перемещаем его
// из временной директории в конечную
move_uploaded_file($_FILES["filename"]["tmp_name"], "image/".$_FILES["filename"]["name"]);
} else {
echo("Ошибка загрузки файла");
}



вот проще тока вот инфу в базу чет я не додумаюсь как сделать ну название файла что бы передавалось в базу даных
Shkiper
kyzmichev с softtime`a брал ? biggrin.gif biggrin.gif
Игорь_Vasinsky
Цитата
  preg_match("#[a-z0-9_]\.(jpeg|png|gif|jpg)#", $name, $av);
        $ava_type = isset($av[1]) ? $av[1]:"jpg";

это типа "я знаю регулярки" ?

pathinfo() и проверка mime type

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Shkiper
Цитата

Цитата
Цитата
  preg_match("#[a-z0-9_]\.(jpeg|png|gif|jpg)#", $name, $av);
        $ava_type = isset($av[1]) ? $av[1]:"jpg";


это типа "я знаю регулярки" ?

А что тут не так?
мне так потешнее, чем через pathinfo wink.gif
Игорь_Vasinsky
так надо не потешней, а логичней, это алгоритм, а не цирк.

ты же на утюге яйки не жаришь.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
inpost
А тебя не смущает, что твой скрипт пропустит файл:
pic.jpg.php , который имеет расширение .php ?

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
$ - поставить точку, но как я и говорил - это лабуда всё.

да и $ava_type не будет представлять тип файла, только то что ты накавырял регуляркой

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Winston
А еще getimagesize используй.
Shkiper
inpost а так:
preg_match("#^[a-z0-9_]+\.(jpeg|png|gif|jpg)+$#", $name, $av);

Цитата
$ - поставить точку

А если не знающий чел прочитает, то он подумает что ты из него деньги трясешь, и заплатит ненароком :lol: :lol: :lol:
Shkiper
ребята, вы наверно меня не так поняли. Я же ведь проверяю расширение файла не сохраненного на сервере, а имя файла($_FILES['reg_avatar']['name']). А потом сохраняю image на сервере в вот таком формате uploads/avatars/mini/Shkiper.jpg
Для этого мне и нужна лабуда с регулярками wink.gif
Shkiper
Цитата (Winston @ 17.12.2012 - 16:58)
А еще getimagesize используй.

а это тут причем blink.gif ?
Winston
Цитата (Shkiper @ 17.12.2012 - 19:10)
а это тут причем

При том, что она вернет ошибку если ты подсунешь ей не картинку. Ею можно почти гарантировать, загрузку только изображения.
inpost
Shkiper
А так файл станет безопасным. За исключением наличия include-inj в твоих скриптавх.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Shkiper
За безопасность не беспокойтесь wink.gif
Быстрый ответ:

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