Shkiper
16.12.2012 - 15:35
Всем привет. Использую загрузку файлов:
$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
16.12.2012 - 15:39
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
16.12.2012 - 17:20
kyzmichev с softtime`a брал ?
Игорь_Vasinsky
16.12.2012 - 22:13
Цитата |
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
17.12.2012 - 19:00
Цитата |
Цитата | Цитата preg_match("#[a-z0-9_]\.(jpeg|png|gif|jpg)#", $name, $av); $ava_type = isset($av[1]) ? $av[1]:"jpg"; |
это типа "я знаю регулярки" ?
|
А что тут не так?
мне так потешнее, чем через pathinfo
Игорь_Vasinsky
17.12.2012 - 20:33
так надо не потешней, а логичней, это алгоритм, а не цирк.
ты же на утюге яйки не жаришь.
_____________
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
17.12.2012 - 20:42
А тебя не смущает, что твой скрипт пропустит файл:
pic.jpg.
php , который имеет расширение .
php ?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Игорь_Vasinsky
17.12.2012 - 20:55
$ - поставить точку, но как я и говорил - это лабуда всё.
да и $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
17.12.2012 - 20:58
А еще getimagesize используй.
Shkiper
17.12.2012 - 20:59
inpost а так:
preg_match("#^[a-z0-9_]+\.(jpeg|png|gif|jpg)+$#", $name, $av);
Цитата |
$ - поставить точку |
А если не знающий чел прочитает, то он подумает что ты из него деньги трясешь, и заплатит ненароком :lol: :lol: :lol:
Shkiper
17.12.2012 - 21:07
ребята, вы наверно меня не так поняли. Я же ведь проверяю расширение файла не сохраненного на сервере, а имя файла($_FILES['reg_avatar']['name']). А потом сохраняю image на сервере в вот таком формате
uploads/avatars/mini/Shkiper.jpgДля этого мне и нужна лабуда с регулярками
Shkiper
17.12.2012 - 21:10
Цитата (Winston @ 17.12.2012 - 16:58) |
А еще getimagesize используй. |
а это тут причем
?
Winston
17.12.2012 - 21:22
Цитата (Shkiper @ 17.12.2012 - 19:10) |
а это тут причем |
При том, что она вернет ошибку если ты подсунешь ей не картинку. Ею можно почти гарантировать, загрузку только изображения.
inpost
17.12.2012 - 21:55
ShkiperА так файл станет безопасным. За исключением наличия include-inj в твоих скриптавх.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Shkiper
17.12.2012 - 22:00
За безопасность не беспокойтесь
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.