Доброго времени суток. Сталкнулся со странной проблемой,делая загрузку музыки на сайт. Помогите,если не тяжело)). Страница отправки:
-------------------------------- -------------------------------- -------------------------------- ----------
CODE ( javascript):
скопировать код в буфер обмена
<script type="text/javascript"> function SendMusic() { //отправка файла на сервер $$f({ formid:'music_send',//id формы url:'music.php',//адрес на серверный скрипт который будет принимать файл onstart:function () {//действие при начале загрузки файла $$('music_result','Начинаю отправку файла...');//в элемент с id="music_result" выводим результат }, onsend:function () {//действие по окончании загрузки файла $$('music_result',$$('music_result').innerHTML+'<br />');//в элемент с id="music_result" выводим результат } }); } </script>
CODE ( html):
скопировать код в буфер обмена
<form id="music_send" method="post" enctype="multipart/form-data" onSubmit="SendMusic();return false"> <input class="file_form" type="file" name="upload_file"/><br/> <div id="music_result">Выберите файл и нажмите на кнопку "Загрузить"...</div><b /><br/> <button class="clean-gray" >Загрузить</button><br/></form><br/> <button onclick="music_refresh();" class="clean-gray" >Обновить</button>
А вот и music.php:
CODE ( javascript):
скопировать код в буфер обмена
<script src="/js/jquery-1.7.2.js" type="text/javascript"></script> <script src="/js/music_refresh.js" type="text/javascript"></script>
PHP:
скопировать код в буфер обмена
<?PHP function uploadHandle ($max_file_size = 100 , $valid_extensions = array(), $upload_dir = '.') { $error = null; $info = null; $max_file_size = '20971520'; include 'connect.php'; if ($_FILES['upload_file']['error'] === UPLOAD_ERR_OK) { // проверяем расширение файла $file_extension = pathinfo($_FILES['upload_file']['name'], PATHINFO_EXTENSION ); $_FILES['upload_file']['name'] = "1.$file_extension"; if (in_array($file_extension, $valid_extensions)) { // проверяем размер файла if ($_FILES['upload_file']['size'] < $max_file_size) { $id = $_SESSION['id']; $_FILES['upload_file']['name'] = $id."lo123оjj.$file_extension"; $id = $_FILES['upload_file']['name']; $destination = $upload_dir .'/' . $_FILES['upload_file']['name']; $info = '<b><div id=i_t3>Музыка успешно загружена</div></b>'; }else{ $error = 'Не удалось загрузить файл';} } else $error = 'Размер файла больше допустимого'; } else $error = 'У файла недопустимое расширение'; } else { // массив ошибок UPLOAD_ERR_INI_SIZE => 'Размер файла больше разрешенного директивой upload_max_filesize в php.ini', UPLOAD_ERR_FORM_SIZE => 'Размер файла превышает указанное значение в MAX_FILE_SIZE', UPLOAD_ERR_PARTIAL => 'Файл был загружен только частично', UPLOAD_ERR_NO_FILE => 'Не был выбран файл для загрузки', UPLOAD_ERR_NO_TMP_DIR => 'Не найдена папка для временных файлов', UPLOAD_ERR_CANT_WRITE => 'Ошибка записи файла на диск' ); $error_code = $_FILES['upload_file']['error']; if (!empty($error_values[$error_code])) $error = $error_values[$error_code]; else $error = 'Случилось что-то непонятное'; } return array('info' => $info, 'error' => $error); } ///////////////////////////////////////////////////////////////////// $extensions = array('mp3'); $upload_dir = 'images/av/'; // Запускаем функцию if(!empty($_FILES['upload_file'])) { $message = uploadHandle(200, $extensions, $upload_dir); // Выводим сообщение echo' <script type="text/javascript"> var elm=parent.window.document.getElementById("music_result"); elm.innerHTML=elm.innerHTML+"<br />Получен файл '.$_FILES['upload_file']['name'].' размером '.$_FILES['upload_file']['size'].' байт/'; echo $message['error'] ? $message['error'] : $message['info']; echo '"; </script>'; } ?>
-------------------------------- -------------------------------- -------------------------------- -----------
Причем что самое интересное: скрипт отлично работает с файлами меньше 7mb!! Если файл больше,то в логе апача нахожу следующее: File does not exist. Почему???
|