[code]
//~~~~~~~~~~~~~~~~~~~~~~Добавление аудиозаписи~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
case 'add_audio':
$id = intval($_GET['id']); // Это типа будет ид папки
$dirr = mysql_fetch_assoc(mysql_query("SELECT * FROM `audio_dirs` WHERE `id` = '".$id."'");
if($dirr = 0) {
echo '<div class="podmenu"><center><b>Папки не существует</b></center></div>';
require_once ('../system/footer.php');
exit();
}
$whitelist = array('.mp3'); # Допустимые расширения
$maxsize = 10; # В мегабайтах
if(isset($_REQUEST['ok'])){
$_POST['name'] = strong(isset($_POST['name']));
$name = strong($_FILES['file']['name']);
$name = preg_replace('#(\.\/)#Ui', NULL, $name);
$name_audio = preg_replace('#\.[^\.]*$#i', NULL, $name);
if (empty($name_audio)){
echo '<div class="podmenu"><center><b>ОШибка</b></center></div>';
require_once ('../system/footer.php');
exit();
}
$ext = strtolower(strrchr($name, '.')); # Расширение файла
$size = $_FILES['file']['size']; # Вес файла
if ($size > (1048576 * $maxsize)) {
$err='Размер файла превышает допустимое значение. [Max. '.$maxsize.'mb.]<br />';
}
if (preg_match('/.php/i', $name) || preg_match('/.pl/i', $name) || $name == '.htaccess' || !in_array($ext, $whitelist)) {
$err = 'Не верное расширение файла.';
}
if(!isset($err)){
if(!is_dir('files/'.$user['id'].'')){
if(!is_dir('files')){mkdir("files", 0777);}
if(!is_dir('files/'.$user['id'].'')){mkdir("files/".$user['id']."", 0777);}
}
mysql_query("INSERT INTO `audio_mp3` SET `name` = '".strong($name_audio)."', `user` = '".$user['id']."', `time` = '".time()."', `dir` = '".$id."'"
$idp = mysql_insert_id();
copy($_FILES['file']['tmp_name'], "audios/files/".$user['id']."/".intval($idp)." .".$ext.""
chmod("audios/files/".$user['id']."/".intval($idp).".mp3", 0666);
}
else
{
echo'<div class=podmenu>ОШИБКА: '.$err.' </div>';
require_once ('../system/footer.php');
exit();
}
$id = mysql_insert_id();
header ("Location: /audios/?act=audio&id=$idp"
}
echo '<div class="podmenu">';
echo '<form action=/audios/?act=add_audio&id='.$id.' method="post" enctype="multipart/form-data">';
echo 'Файл: <br/><input type="file" name="file"/><br/>';
echo '<input type=submit name =ok value=Загрузить class=submit white/></form>';
echo '</form>';
echo '</div>';
include_once '../system/footer.php';
break;
[/code]
Добавлено 22.02.17 в 15:27:02:
Проходит все без ошибок, запись в бд идет, папка создается..
А файла в ней нет, какие могут быть причины
После копи сделай
$err = error_get_last();
var_dump($err);
Будет ошибка - напишет.
№2 - не надо делать два mkdir. Есть 3 параметр булевый
http://php.net/manual/ru/function.copy.php
Меня тоже насторажило место с mkdir, но не сама функция а то что она делает. Ты простовляешь права папке files/ которая лежит в этом же коталоге что и файл загрузки.
А загружаеш файл в папку audios/files/ которая тоже лежит в этом же каталоге.
As, Ну на папку получается права 0777 тоесть расширенный формат...
Что по вашему мне нужно сделать?
maggy, нет, права ты выставлёеш верно, но куда ты загружаеш.
вот твоя структура
/папка/audio_load.php - файл загркзчик
/папка/files/ - папка которой ты выставляешь права
/папка/audios/files/ - папка в которую грузиш файл
maggy,
<?
copy($_FILES['file']['tmp_name'], "files/".$user['id']."/".intval($idp)." .".$ext.""
chmod("files/".$user['id']."/".intval($idp).".mp3", 0666);
?>
вот так попробуй
As,
немного не так
/audios/audio_load.php - файл загркзчик
/audios/files/ - папка которой ты выставляешь права
/audios/files/папка - папка в которую грузиш файл
maggy, но судя по твоему коду то структура та что указал я.