Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

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

тема: загрузка музыкального файла в формате mp3 на сервер
 
 автор: nautilus2812   (19.07.2010 в 22:59)   письмо автору
 
 

Подскажите отличается ли загрузка музыкальногофайла от загрузки изображений на сервер.
Изображения загружаются без проблем..а переделываю этот скрипт под mp3...что то не грузится ничего..приведите пример загрузки музыкального файла..спасибо

  Ответить  
 
 автор: Usta   (19.07.2010 в 23:06)   письмо автору
 
   для: nautilus2812   (19.07.2010 в 22:59)
 

Ни чем не отличается от изображения, смотря как вы передаете этот файл на сервер, может у вас стоит проверка на расширение или на тип файла. Или просто стоит ограничение на Mb передачи через POST. Скрипт в студию, а там видно будит.

  Ответить  
 
 автор: nautilus2812   (19.07.2010 в 23:15)   письмо автору
 
   для: Usta   (19.07.2010 в 23:06)
 

стоит проверка на расширения и на размер файла..если ставлю jpeg при проверке всё работает..ставлю mp3..не грузит..меняю также размер с 2 мегабайт на 10..не работает.

  Ответить  
 
 автор: Usta   (19.07.2010 в 23:32)   письмо автору
 
   для: nautilus2812   (19.07.2010 в 23:15)
 

Значит не достаточно проверок типа if else. Что затрудняет на каком этапе у вас не загружается файл.
вот Вам простой пример, правда много мусора:

<?
if (isset($_POST['add']))
 {
   
$name htmlspecialchars(trim($_POST['nazv']));
   
$id_cat intval($_POST['id_cat']);
   
$min intval(trim($_POST['min']));
   
$sek intval(trim($_POST['sek']));
   
$time $min*60 $sek;
    
// Определяем расширение файла
    
$ext strrchr($_FILES['mp3']['name'], ".");
    if (
$ext == '.mp3')
        {
    
$url "music/".date("YmdHis",time()).$ext
    
$extentions = array("#\.php#i",
                        
"#\.phtml#i",
                        
"#\.php3#i",
                        
"#\.html#i",
                        
"#\.htm#i",
                        
"#\.hta#i",
                        
"#\.pl#i",
                        
"#\.xml#i",
                        
"#\.inc#i",
                        
"#\.shtml#i"
                        
"#\.xht#i"
                        
"#\.xhtml#i");
    foreach(
$extentions AS $exten
    {
      if(
preg_match($exten$ext)) 
        
$url "music/".date("YmdHis",time()).".txt"
    }
    
// Перемещаем файл из временной директории сервера в
       
chmod("music"0777);   
    if (
move_uploaded_file($_FILES['mp3']['tmp_name'], $url ))
     {
      
unlink($_FILES['mp3']['tmp_name']);
      
chmod("music"0755);    
      
$query mysql_query("INSERT INTO `mp3` VALUES(NULL,'".$id_cat."','".$name."','".$url."','".$time."','show',NOW() )");
      if(
$query)
       {
             echo 
"<html><head>
          <META HTTP-EQUIV='Refresh' CONTENT='1; URL=addmp3.php'></head>
          <body><center><b>Добавлено!</b></center></body>
          </html>"
;
       } else  echo 
"Ошибка! добавления в базу."
     } else echo 
"Ошибка закачки файла";

    }   else echo 
"<b>Только mp3!</b>"
}
?>

  Ответить  
 
 автор: nautilus2812   (19.07.2010 в 23:59)   письмо автору
 
   для: Usta   (19.07.2010 в 23:32)
 

ну во пример моего кода..я его поупростил
фарма
<form name="form" enctype="multipart/form-data" method="post" action="index.php" >
<input type="file" name="muz">
<input type="submit" name="z_muz" value="Загрузить">
</form>

обработчик
<?php
if(isset($_POST['z_muz'])&& !empty($_FILES['muz']['name']))
{
$size=$_FILES['muz']['size'];
$razm="10";
if(size> ($razm*1048576))
{
echo 'Ошибка загрузки! Размер файла должен быть не больше 10мб.';
exit();
}
if(preg_match('/[.](mp3)$/',$_FILES['muz']['name']))
{
$mpeg='audio/';
$filename = $_FILES['muz']['name'];
$source= $_FILES['muz']['tmp_name'];
$target = $mpeg . $filename;
move_uploaded_file($source, $target);
echo 'файл загружен';
exit();
}
else
{
echo 'Ошибка загрузки! Недопустимое имя файла.Файл должен быть в формате mp3
';
exit();
}
}
?>

  Ответить  
 
 автор: Gubichev   (19.07.2010 в 23:38)   письмо автору
 
   для: nautilus2812   (19.07.2010 в 23:15)
 

Нужно учитывать, что файл может быть с расширением как mp3 так и MP3

  Ответить  
 
 автор: nautilus2812   (19.07.2010 в 23:41)   письмо автору
 
   для: Gubichev   (19.07.2010 в 23:38)
 

ну это я понимаю

  Ответить  
 
 автор: Usta   (19.07.2010 в 23:46)   письмо автору
 
   для: Gubichev   (19.07.2010 в 23:38)
 

Ну значит переписать строку:

<?
ext 
strtolower(strrchr($_FILES['mp3']['name'], "."));
?>

  Ответить  
 
 автор: nautilus2812   (20.07.2010 в 00:07)   письмо автору
 
   для: Usta   (19.07.2010 в 23:46)
 

<form name="form" enctype="multipart/form-data" method="post" action="index.php" >
<input type="file" name="muz">
<input type="submit" name="z_muz" value="Загрузить">
</form>

обработчик
<?php
if(isset($_POST['z_muz'])&& !empty($_FILES['muz']['name']))
{
$size=$_FILES['muz']['size'];
$razm="10";
if(
size> ($razm*1048576))
{
echo 
'Ошибка загрузки! Размер файла должен быть не больше 10мб.';
exit();
}
if(
preg_match('/[.](mp3)$/',$_FILES['muz']['name']))

$mpeg='audio/';
$filename $_FILES['muz']['name'];
$source$_FILES['muz']['tmp_name']; 
$target $mpeg $filename;
move_uploaded_file($source$target);
echo 
'файл загружен';
exit();
}
else
{
echo 
'Ошибка загрузки! Недопустимое имя файла.Файл должен быть в формате mp3
'
;
exit();
}
}
?>

  Ответить  
 
 автор: Gubichev   (20.07.2010 в 00:12)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:07)
 

Зачем тут регулярка? А если уж есть, то почему без модификатора "i"?

  Ответить  
 
 автор: nautilus2812   (20.07.2010 в 00:17)   письмо автору
 
   для: Gubichev   (20.07.2010 в 00:12)
 

но если я пишу jpeg в регулярке всё работает..регулярка осталасьот изображений..там перечислялась куча расширений..я их убрал оставил mp3

  Ответить  
 
 автор: Gubichev   (20.07.2010 в 00:24)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:17)
 

Замените
/[.](mp3)$/

на
/[.](mp3)$/i

  Ответить  
 
 автор: Usta   (20.07.2010 в 00:18)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:07)
 

Что выводит на экран?? Скопировал ваш код все замечательно работает, но на локалке!! значит или права либо... Какой у вас хостер (платный/бесплатный)? есть ли htaccess??

  Ответить  
 
 автор: nautilus2812   (20.07.2010 в 00:26)   письмо автору
 
   для: Usta   (20.07.2010 в 00:18)
 

если загружать изображение выводит что всё загружено..если переделать на mp3 то ничего непроисходит..вроде чтото пытается загрузить и всё..

  Ответить  
 
 автор: nautilus2812   (20.07.2010 в 00:27)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:26)
 

да я тоже на локалке пытаюсь пробовать

  Ответить  
 
 автор: nautilus2812   (20.07.2010 в 00:29)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:27)
 

ну если у вас работает значит буду пробовать у себя...должен значит и у меня работать

  Ответить  
 
 автор: Usta   (20.07.2010 в 00:33)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:27)
 

И проверьте есть ли директория audio??

  Ответить  
 
 автор: Usta   (20.07.2010 в 00:27)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:26)
 

Значит:

<?
if(move_uploaded_file($source$target)) {
echo 
"Загружено"; else echo "Что-то не то";
}
?>

  Ответить  
 
 автор: ols   (20.07.2010 в 00:46)   письмо автору
 
   для: Usta   (20.07.2010 в 00:27)
 

Дело происходит на хостинге? Попробуйте Total Commander выставить права 0777, как после этого поведет себя скрипт

  Ответить  
 
 автор: neadekvat   (20.07.2010 в 00:39)   письмо автору
 
   для: nautilus2812   (20.07.2010 в 00:26)
 

Какой уровень ошибок выставлен? Ставьте по-максимому. Либо сообщение об ошибке появится на экране, либо файл появится в папке.

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

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