Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: переименовать загружаемый файл
 
 автор: Василий   (11.01.2012 в 23:52)   письмо автору
 
 

загружаем картинку
<?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

  Ответить  
 
 автор: cheops   (12.01.2012 в 00:35)   письмо автору
 
   для: Василий   (11.01.2012 в 23:52)
 

Вот в этой строке
>$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.

  Ответить  
 
 автор: Василий   (12.01.2012 в 00:38)   письмо автору
 
   для: cheops   (12.01.2012 в 00:35)
 

подставляйте номер id_pu и расширение загруженного файла.

так я же не знаю какое именно будет расщирение

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 00:42)   письмо автору
 
   для: Василий   (12.01.2012 в 00:38)
 

так получите его из имени загружаемого файла
можно использовать getimagesize() или pathinfo()
а можно при помощи строковых функций извлечь расширение файла.
и потом, когда получите id - сформируете новое имя

  Ответить  
 
 автор: Василий   (12.01.2012 в 00:50)   письмо автору
 
   для: Slo_Nik   (12.01.2012 в 00:42)
 

правильно ли понял
что строка
>$destination ="img/logo_pu/" . $_FILES['userfile']['name']
;

должна быть такой
>$destination ="img/logo_pu/" .id_pu['userfile']['name'];

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 01:13)   письмо автору
 
   для: Василий   (12.01.2012 в 00:50)
 

ну попробуйте так сделать и получите ответ на свой вопрос.
Вы вообще понимаете,что Вам пишут?

  Ответить  
 
 автор: Василий   (12.01.2012 в 01:16)   письмо автору
 
   для: Slo_Nik   (12.01.2012 в 01:13)
 

написал так как понимаю.
Если не правильно, лучше поправьте

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 01:20)   письмо автору
 
   для: Василий   (12.01.2012 в 01:16)
 

я Вам дал название двух функций!!!
Вы ознакомились с возможностями этих функций, читали в руководстве по php об этих функциях?
Сразу отвечу за Вас - нет!!!
Потому, что если бы Вы прочитали, то не задавали бы глупых вопросов.
Вот это главная причина того, почему Ваши темы такие раздутые.

  Ответить  
 
 автор: Василий   (12.01.2012 в 01:24)   письмо автору
 
   для: Slo_Nik   (12.01.2012 в 01:20)
 

cheops Ваших функций не предлагал.
Вы усложняете задачу

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 01:25)   письмо автору
 
   для: Василий   (12.01.2012 в 01:24)
 

интересно, чем я усложнил задачу?
что написал Cheops?
Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.
Что ответили Вы?
так я же не знаю какое именно будет расщирение
Вместо Cheops ответил я и написал какие функция надо использовать, что бы получить расширение файла из его имени.
Чтобы Вы не задавали очередной глупый вопрос сразу отвечу, расширение файла это те буквы латинского алфавита, которые идут в конце имени после точки. обычно их три, но может быть и больше

p.s. и это функции не мои, все претензии к разработчика php, что они так усложняют решение задачи для Вас )))

  Ответить  
 
 автор: Василий   (12.01.2012 в 01:57)   письмо автору
 
   для: Slo_Nik   (12.01.2012 в 01:25)
 

как сложно.
там ведь уже есть
$extensions = array('jpg', 'jpeg', 'png', 'gif');
а то что имеет другое разрешение не запишутся.
пусть будет и jpeg', хоть 'png' самое главное чтобы имя переименовалось в № id_pu

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 02:58)   письмо автору
 
   для: Василий   (12.01.2012 в 01:57)
 

Вам же русским языком пишут, что надо получить расширение файла из имени, то есть из
$_FILES['file']['name'] надо извлечь только расширение, пусть это будет ".jpg", и подставить к id и в таком виде записать ...
вот для этого используйте одну из тех функция, что я писал...
$extensions = array('jpg', 'jpeg', 'png', 'gif'); этот массив для проверки расширения и только

  Ответить  
 
 автор: Василий   (12.01.2012 в 07:45)   письмо автору
 
   для: Slo_Nik   (12.01.2012 в 02:58)
 

Вот в этой строке
>$destination ="img/logo_pu/" . $_FILES['userfile']['name'];
Вместо $_FILES['userfile']['name'] подставляйте номер id_pu и расширение загруженного файла.

не понимаю. как подставить?

  Ответить  
 
 автор: Lotanaen   (12.01.2012 в 11:31)   письмо автору
 
   для: Василий   (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 из вашей БД и плюс расширение.

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 12:23)   письмо автору
 
   для: Василий   (12.01.2012 в 07:45)
 

Вы получили расширение файла?
У Вас есть id ?
значит

<?php
//$ext это расширение файла, получаете при помощи функций, которые я привёл, из имени файла
$newname $id.$ext;
// или, смотря как будет выглядеть расширение, с точкой или без, в данном случае расширение без точки
$newname $id.".".$ext;

  Ответить  
 
 автор: Василий   (12.01.2012 в 18:38)   письмо автору
 
   для: 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'];

  Ответить  
 
 автор: Slo_Nik   (12.01.2012 в 18:50)   письмо автору
 
   для: Василий   (12.01.2012 в 18:38)
 

Всё, забудьте....
Займитесь лучше коллекционированием пустых пивных баночек....

p.s. я Вам дал строку как должно выглядеть новое имя файла, но думать это не Ваша стихия....

  Ответить  
 
 автор: ladan   (12.01.2012 в 18:52)   письмо автору
 
   для: Slo_Nik   (12.01.2012 в 18:50)
 

"Займитесь лучше коллекционированием пустых пивных баночек...."
хех :)

  Ответить  
 
 автор: Василий   (12.01.2012 в 19:14)   письмо автору
 
   для: ladan   (12.01.2012 в 18:52)
 

пойду напьюсь... сока

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования