|
|
|
| загружаем картинку
<?php
/**
* Функция загрузки файла (аплоадер)
* @param int $max_file_size максимальный размер файла в килобайтах
* @param array $valid_extensions массив допустимых расширений
* @param string $upload_dir директория загрузки
* @return array сообщение о ходе выполнения
*
* @author IT studio IRBIS-team (www.irbis-team.com)
* @copyright © 2009 IRBIS-team
*/
function uploadHandle($max_file_size = 100, $valid_extensions = array(), $upload_dir = '.')
{
// when checked "delete"
if ($_REQUEST['remove']) {
return array('info' => 'Логотип удален', 'error' => '');
}
$error = null;
$info = null;
$max_file_size *= 1024;
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK)
{
// проверяем расширение файла
$file_extension = pathinfo($_FILES['userfile']['name'], PATHINFO_EXTENSION);
if (in_array($file_extension, $valid_extensions))
{
// проверяем размер файла
if ($_FILES['userfile']['size'] < $max_file_size)
{
$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination))
$info = 'Файл успешно загружен';
else
$error = 'Не удалось загрузить файл';
}
else
$error = 'Размер файла больше допустимого';
}
else
$error = 'У файла недопустимое расширение';
}
else
{
// массив ошибок
$error_values = array(
UPLOAD_ERR_INI_SIZE =>
'Размер файла больше разрешенного директивой upload_max_filesize в php.ini',
UPLOAD_ERR_FORM_SIZE =>
'Размер файла превышает указанное значение в MAX_FILE_SIZE',
UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично',
UPLOAD_ERR_NO_FILE => false,
UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов',
UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск'
);
$error_code = $_FILES['userfile']['error'];
if (isset($error_values[$error_code]))
$error = $error_values[$error_code];
else
$error = 'Случилось что-то непонятное';
}
return array('info' => $info, 'error' => $error);
}
/////////////////////////////////////////////////////////////////////
$extensions = array('jpg', 'jpeg', 'png', 'gif');
$upload_dir = 'images';
// Запускаем функцию
if(!empty($_POST['upload_submit']))
{
$message = uploadHandle(200, $extensions, $upload_dir);
// Выводим сообщение
echo $message['error'] ? "<p class='mistake'>".$message['error']."</p>" :
"<p class='nomistake'>".$message['info']."</p>";
}
?>
|
нужно загружаемой картинке присвоить номер id_pu, которая приходит в этот файл
if (isset($_POST['id_pu']))
{$id_pu = $_POST['id_pu'];
if ($id_pu == '') {unset ($id_pu);}}
|
и если id_pu=1, то картинка будет 1.jpg, если id_pu=114, то картинка будет 114.jpg | |
|
|
|
|
|
|
|
для: Василий
(11.01.2012 в 23:52)
| | Вот в этой строке
>$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла. | |
|
|
|
|
|
|
|
для: cheops
(12.01.2012 в 00:35)
| | подставляйте номер id_pu и расширение загруженного файла.
так я же не знаю какое именно будет расщирение | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 00:38)
| | так получите его из имени загружаемого файла
можно использовать getimagesize() или pathinfo()
а можно при помощи строковых функций извлечь расширение файла.
и потом, когда получите id - сформируете новое имя | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 00:42)
| | правильно ли понял
что строка
>$destination ="img/logo_pu/" . $_FILES['userfile']['name']
| ;
должна быть такой
>$destination ="img/logo_pu/" .id_pu['userfile']['name'];
|
| |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 00:50)
| | ну попробуйте так сделать и получите ответ на свой вопрос.
Вы вообще понимаете,что Вам пишут? | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 01:13)
| | написал так как понимаю.
Если не правильно, лучше поправьте | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 01:16)
| | я Вам дал название двух функций!!!
Вы ознакомились с возможностями этих функций, читали в руководстве по php об этих функциях?
Сразу отвечу за Вас - нет!!!
Потому, что если бы Вы прочитали, то не задавали бы глупых вопросов.
Вот это главная причина того, почему Ваши темы такие раздутые. | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 01:20)
| | cheops Ваших функций не предлагал.
Вы усложняете задачу | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 01:24)
| | интересно, чем я усложнил задачу?
что написал Cheops?
Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.
Что ответили Вы?
так я же не знаю какое именно будет расщирение
Вместо Cheops ответил я и написал какие функция надо использовать, что бы получить расширение файла из его имени.
Чтобы Вы не задавали очередной глупый вопрос сразу отвечу, расширение файла это те буквы латинского алфавита, которые идут в конце имени после точки. обычно их три, но может быть и больше
p.s. и это функции не мои, все претензии к разработчика php, что они так усложняют решение задачи для Вас ))) | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 01:25)
| | как сложно.
там ведь уже есть
$extensions = array('jpg', 'jpeg', 'png', 'gif');
а то что имеет другое разрешение не запишутся.
пусть будет и jpeg', хоть 'png' самое главное чтобы имя переименовалось в № id_pu | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 01:57)
| | Вам же русским языком пишут, что надо получить расширение файла из имени, то есть из
$_FILES['file']['name'] надо извлечь только расширение, пусть это будет ".jpg", и подставить к id и в таком виде записать ...
вот для этого используйте одну из тех функция, что я писал...
$extensions = array('jpg', 'jpeg', 'png', 'gif'); этот массив для проверки расширения и только | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 02:58)
| | Вот в этой строке
>$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.
не понимаю. как подставить? | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 07:45)
| | >Вот в этой строке
>>$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
>Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.
>
>не понимаю. как подставить?
ну так как Вы в первом посте написали "и если id_pu=1, то картинка будет 1.jpg, если id_pu=114, то картинка будет 114.jpg", т.е. id_pu из вашей БД и плюс расширение. | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 07:45)
| | Вы получили расширение файла?
У Вас есть id ?
значит
<?php
//$ext это расширение файла, получаете при помощи функций, которые я привёл, из имени файла
$newname = $id.$ext;
// или, смотря как будет выглядеть расширение, с точкой или без, в данном случае расширение без точки
$newname = $id.".".$ext;
|
| |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 12:23)
| |
>>$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
>Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.
|
Не понятно, как должны выглядеть эта строчка
$destination ="img/logo_pu/" . $_FILES['userfile']['name']; | |
|
|
|
|
|
|
|
для: Василий
(12.01.2012 в 18:38)
| | Всё, забудьте....
Займитесь лучше коллекционированием пустых пивных баночек....
p.s. я Вам дал строку как должно выглядеть новое имя файла, но думать это не Ваша стихия.... | |
|
|
|
|
|
|
|
для: Slo_Nik
(12.01.2012 в 18:50)
| | "Займитесь лучше коллекционированием пустых пивных баночек...."
хех :) | |
|
|
|
|
|
|
|
для: ladan
(12.01.2012 в 18:52)
| | пойду напьюсь... сока | |
|
|
|