За последние 24 часа нас посетили 22926 программистов и 1241 робот. Сейчас ищет 791 программист ...

Не срабатывает цыкл обработки загрузки файлов

Тема в разделе "Решения, алгоритмы", создана пользователем biryukovm, 15 окт 2015.

  1. biryukovm

    biryukovm Активный пользователь

    С нами с:
    15 окт 2015
    Сообщения:
    54
    Симпатии:
    1
    Привет форумчане.
    У меня проблема такая. Я наше и переделал код и я мгу получить файл и записать его в нужную дерикторию. Но теперь проблема я не могу загружать несколько файлов


    Код (PHP):
    1. <tr><td style="vertical-align: middle;"><label>Файл</label></td><td><input name="file[]" type="file"></td></tr>
    2. <tr><td style="vertical-align: middle;"><label>Файл</label></td><td><input name="file[]" type="file"></td></tr> 

    Код (PHP):
    1. $flag_file = 0;
    2. // Создаем каталог с датой
    3. if (is_dir("file/".date("m_Y"))){$flag_file = $flag_file+1;}else{@mkdir('file/'.date("m_Y"), 0777);chmod('file/'.date("m_Y"),0777);if (is_dir("file/".date("m_Y"))){$flag_file = $flag_file+1;}}
    4. // Зная что каталог с датой создан проверяем есть ли папка пользователя
    5. IF ($flag_file == 1){if (is_dir("file/".date("m_Y").'/'.$_SESSION['auth_id'])){$flag_file = $flag_file+1;}else{@mkdir('file/'.date("m_Y").'/'.$_SESSION['auth_id'], 0777);chmod('file/'.date("m_Y").'/'.$_SESSION['auth_id'],0777);if (is_dir("file/".date("m_Y").'/'.$_SESSION['auth_id'])){$flag_file = $flag_file+1;}}}
    6. $file_put = "file/".date("m_Y").'/'.$_SESSION['auth_id']."/"; // путь для сохранения
    7.  
    8.  
    9. //цыкл который я создавал
    10. foreach($_FILES['file']['name'] as $k=>$f) {if (!$_FILES['file']['error'][$k]) {
    11. //цыкл который я создавал
    12.  
    13.  
    14.     ini_set('memory_limit', '64M');
    15.     $maxsize = "100000000";
    16.     $extentions = array( "gif","txt","tpl","jpg","jpeg","png","zip", "rar","7z","tif","psd","swf","flv","avi","mpeg","mp4","mp3","wav", "ogg","ogm","doc","xls","ppt","djvu","djv","pdf","xlsx","xlsm","xlsb","xltm","xlam","xml","xlt","docx","docm","doc","dotx","dot");
    17.     $size = filesize ($_FILES['file']['tmp_name'][$k]);
    18.     $type = strtolower(substr($filename, 1+strrpos($filename,".")));
    19.     $new_name = $_FILES['file']['name'][$k];// имя файла
    20.         $new_name = strtr(stripWhitespaces($new_name), " ", "_");// с помощью функции мы удоляем невидемые символы и убираем проблеы заменяя слэшем
    21.         $new_name = strrev(mb_substr(strrev($new_name),mb_strlen($new_name)-(strrpos($new_name,".")))); // получаем имя файла без расширения
    22.         $microtime = microtime();
    23.         $microtime = strrev(mb_substr(strrev($microtime),mb_strlen($microtime)-(strrpos($microtime," "))));
    24.         $new_name = $new_name.'['.date("m.d.y").'_'.date("H:i:s").':'.$microtime.'].'.$type; //даем имя файла с датой и временем в милисикундах
    25.  
    26.     if($size > $maxsize){$_SESSION['select_result'] = $_SESSION['select_result'].'<div class="select_err">Файл больше 100 мб. Уменьшите размер вашего файла или загрузите другой.</div>';}
    27.     elseif(!in_array($type,$extentions)){$_SESSION['select_result'] = $_SESSION['select_result'].'<div class="select_err">Файл имеет недопустимое расширение "'.$type.'".</div>';} else
    28.     {
    29. if (copy($file, $file_put.$new_name)){
    30.        
    31.        
    32.     //mysql_query("UPDATE akt_narmotiv SET url_file='$new_name' WHERE id = '$id'",$link);
    33.     $_SESSION['select_result'] = $_SESSION['select_result']."Файл загружен!<br>Скопируйте адрес файла<br> [url=".$file_put.$new_name."]".$file_put.$new_name."</b>[/url]";
    34.     }else {$_SESSION['select_result'] = $_SESSION['select_result'].'<div class="select_err">Файл НЕ был загружен.</div>';}}
    35.  
    36. //цыкл который я создавал
    37. }}
    38. //цыкл который я создавал 
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    покажи полностью html-форму (;
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  4. loerque

    loerque Новичок

    С нами с:
    16 окт 2015
    Сообщения:
    6
    Симпатии:
    0
    Советую привести код в читабельный вид и включив отображение ошибок, пройтись по нему построчно.
    Например, указана не существующая функция "stripWhitespaces", скорее всего это был trim http://php.ru/manual/function.trim.html. Так же вместо copy лучше использовать moveuploadfile http://php.ru/manual/function.move-uploaded-file.html, так как работаешь с загруженными файлами на сервер.
    Закомментируй код, который не отвечает непосредственно за загрузку файла и отладь загрузку на базовом уровне. После уже постепенно добавь фильтрацию имен и типов файлов.