1. PHP / Говнокод #4676

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    for ($i = 0; $i < count($_FILES['att']['name']); $i++) {
      if (copy($_FILES['att']['tmp_name'][$i], "files/".$_FILES['att']['name'][$i])) {
        unlink($_FILES['att']['tmp_name'][$i]);
        chmod("files/".$_FILES['att']['name'][$i], 0644);
      }
    }

    Из той же гостевухи как и кусок примера в http://www.govnokod.ru/4660.
    Мультизагрузка файлов на сервер. Естественно, тоже пришлось до
    ума доводить.

    Запостил: dwinner, 18 Ноября 2010

    Комментарии (8) RSS

    • А что у Вас получилось? :)
      Ответить
    • в этом коде прекрасно все: и толстый, лоснящийся копипаст. И хеш хешей с массивами и кросс-платформенный чмод
      Ответить
    • Угу, и троли комментят... :-)
      Ответить
    • нефик давать юзеру от апача права на chmod
      Ответить
    • Ничего не понял. Прошу пояснения?
      Ответить
      • Много файлов залилось в темповую директорию.
        Мы копируем их в директорию files, сохраняя имена.
        Удаляем файлы (строка 3) из темповой директории.
        Ставим права файлам в директории 644 (Unix/Linux).
        =====
        Дерьмо в том, что если имена файлов будут иметь одинаковые имена, то один файл перетерёт предыдущий.

        И если в имени файла будут символы не допустимые для ОС, на которой работает этот PHP-скрипт, будет тоже дерьмо.
        Ответить
    • Год не такое уж и Г, просто тут целая куча (так и хочется сказать говна) потенциальных ошибок...
      Ответить

    Добавить комментарий