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

    +8

    1. 1
    https://github.com/mpak2/mpak.su/blob/master/include/mpfunc.php#L54

    Новая система измерения файлов

    Запостил: dm_fomenok, 12 Июня 2016

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

    • Да это же известный код. Функцию выше я уже видел на говнокоде.
      Ответить
      • > известный код
        Для Мрачной CMS тут уже советовали завести отдельный раздел...
        Ответить
        • Давайте в asm писать, всё равно он не нужен
          Ответить
    • Задача со звёздочкой: а как правильно реализовать ту же функцию?
      Ответить
      • Пусть http сервер раздаёт.
        Ответить
        • Уточнение: как сделать, чтобы имя файла генерировалось динамически и чтобы сервер отдавал заголовок Content-Disposition (этот заголовок вынуждает браузер открывать диалог сохранения файла)?
          Ответить
          • > имя файла генерировалось динамически
            Ну вот тут х.з. Мож каким-нибудь server-side редиректом с предлагаемого имени на настоящее?

            > вынуждает браузер открывать диалог сохранения файла
            Какого-нибудь application/octet-stream, которое браузер точно не откроет, в content-type недостаточно будет?
            Ответить
            • Как сделать server-side редирект? Переписывать на ходу конфиг сервера и посылать ему сигнал или рестартовать — для питухов анскильных.

              Правильный ответ спрятан где-то тут: http://govnokod.ru/16697

              Спойлер. Достаточно реализовать один из двух вариантов:
              1. Послать из пыхоскрипта серверу заголовок Χ-SendFile (для надёжности ещё и X-Accel-Redirect), чтобы файл раздал сервер, а не пыхоскрипт.
              2. Использовать расширение из пекла, а именно pecl_http, у которого как минимум две несовместимые версии.

              Да, в #16697 продемонстрировано, что CodeIgniter — не меньшее говно, чем Мрак a. k. a. CMS Жираф.

              > Какого-нибудь application/octet-stream, которое браузер точно не откроет, в content-type недостаточно будет?

              Надо тестировать.
              Ответить
          • Ну как вариант - для файла с именем fad7c23c-5561-4420-822f-85e6e9af57a7.mp3 давать ссылку в виде /downloads/fad7c23c-5561-4420-822f-85e6e9af57a7/djigurda.mp3. Ну и конфигом nginx'а отрезать от URL'а человекочитаемое имя и сувать его в Content-Disposition...
            Ответить
          • Задача со звёздочкой - как сделать то же самое, если файл валяется в каком-нибудь S3.
            Ответить
            • Оверрайдом хедеров задача не решится?
              Ответить
        • а вариант, когда файло хранится в блобах в субд? и когда доступ к "файлу" покрыт acl?

          пусть нжинкс дальше кеширует результат, если ему позволят, но один раз извлечь контент надо беком (апстримом для нжинкса)

          если в пыхе проблема вычитать из источника файл и отдать по http, это проблема пыхи, а не архитектуры
          Ответить
      • Задача с Роджером Хуём: как реализовать это на J?
        Ответить
    • // Читаем килобайтный блок, отдаем его в вывод и сбрасываем в буфер
      echo fread ($f, 5120);
      Ответить
    • Откопано:
      http://ideone.com/jDyKoJ
      Ответить
    • Я человек простой: вижу mpak.su - ставлю въёбываю плюс.
      Ответить
    • Да этого говна хватит на пол года вперед каждый день постить.
      Ответить
    • (substr($k, 0, 1) == '!')
      Ответить
    • $return = ob_get_contents();
      ob_end_clean();
      Ответить
    • imagestring($src, 1, 5, 30, (file_exists($file_name) ? "GD Error" : "HeTKapmuHku"), $tc);
      Ответить
    • eval('?>'. strtr(file_get_contents($file), array('<? die;'=>'<?', '<?php die;'=>'<?php')));
      Ответить
    • Хочу ещё покушать говноcms!
      Ответить

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