Скачивание файла при заходе на сайт

vadim74a

Inactive
Забанен
Дней с нами
3.858
Розыгрыши
1
Сообщения
1.337
Репутация
289
Реакции
1.970
Скрипт:
PHP:
<?php
$file= $_GET['file']; // Название в адресной строке, для того, что бы скрипт понял когда качать.

// Нужен для Internet Explorer, иначе Content-Disposition не работает
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');

$file_extension = strtolower(substr(strrchr($file,"."),1));

//Для удобство сделал вывод ошибок.
if( $file== "" )
{
echo "ОШИБКА: Не указано имя файла.";
exit;
} elseif ( ! file_exists( $file ) ) // проверяем существует ли указанный файл
{
echo "ОШИБКА: Данного файла не существует.";
exit;
};
switch( $file_extension ) // Выборка форматов
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "rar": $ctype="application/rar"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($file)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile("$filename");
exit();
?>

Сохраняем файл под форматом ".php"

Пример download.php
Все очень просто, вы заходите на сайт и файл будет скачиваться сразу же.

Для того, что бы скачать файл надо перейти по ссылке.

сайт.домен/download.php?file=primer.exeДля того, что бы изменить в адресной строке file как в скрипе я писал надо все слова file изменить на свои.
Выделил в скрипе все слова которые надо будет изменит, если захотите поменять file на свой.
 
Скрипт:
PHP:
<?php
$file= $_GET['file']; // Название в адресной строке, для того, что бы скрипт понял когда качать.

// Нужен для Internet Explorer, иначе Content-Disposition не работает
if(ini_get('zlib.output_compression'))
ini_set('zlib.output_compression', 'Off');

$file_extension = strtolower(substr(strrchr($file,"."),1));

//Для удобство сделал вывод ошибок.
if( $file== "" )
{
echo "ОШИБКА: Не указано имя файла.";
exit;
} elseif ( ! file_exists( $file ) ) // проверяем существует ли указанный файл
{
echo "ОШИБКА: Данного файла не существует.";
exit;
};
switch( $file_extension ) // Выборка форматов
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "rar": $ctype="application/rar"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($file)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile("$filename");
exit();
?>

Сохраняем файл под форматом ".php"

Пример download.phpВсе очень просто, вы заходите на сайт и файл будет скачиваться сразу же.

Для того, что бы скачать файл надо перейти по ссылке.

сайт.домен/download.php?file=primer.exeДля того, что бы изменить в адресной строке file как в скрипе я писал надо все слова file изменить на свои.
Выделил в скрипе все слова которые надо будет изменит, если захотите поменять file на свой.
Даже запроса не будет?
 

Вложения

  • upload_2016-3-12_23-51-56.png
    upload_2016-3-12_23-51-56.png
    35,2 KB · Просмотры: 38
мм опен кейс
 
  • Like
Реакции: rohypnol
Код от джава или хтмл, дак ето давно уже было , я не помню где потому и написал баян , но было 10000%
Ну это пиздец если честно. Тут PHP.
Не делай поспешных выводов, пока все не узнаешь.
 
Если дороботать эту шляпку, можно получить систему ратника, с авто опеном на комп
 
летит dark comet в пучину автоскачки
 
Норм, но проще залить на ФО и сократить ссылку. Имхо, если даун малварь скачает с домена, на котором юзается этот код, то и с сокращённой ссылки на ФО тоже скачает.
 
  • Like
Реакции: rohypnol
$file= $_GET['file']; // Название в адресной строке, для того, что бы скрипт понял когда качать.
Это не название в адресной строке, а имя параметра.
Этих имён может быть до задницы много.
Пример в адресной строке: lorem.ru/upsum.php?человек=да&животное=нет
Пример кода (мне не лень было это писать):
PHP:
<?
$lorem = $_GET['человек'];
$upsum = $_GET['животное'];

echo "<html><head>
body
{
    background: #000;
}

.lorem
{
    background: #444;
    color: #fff;
    position: absolute;
    width: 500px;
    height: 500px;
    left: 20%;
    top: 20%;
}
</head><body>";

if( !$lorem )
{
    echo "<div class='lorem'>Вы не указали, что являетесь человеком.</div>"
}
else
{
    if( $lorem != "да" || $lorem != "нет" )
    {
        echo "<div class='lorem'>Некорректно введены данные.</div>"
    }
    else{
        if( $lorem == "да" )
        {
            echo "<div class='lorem'>Вы указали, что вы - человек.</div>"
        }
        else
        {
            echo "<div class='lorem'>Вы указали, что вы - не человек.</div>"
        }
    }
}

if( !$upsum )
{
    echo "<div class='lorem'>Вы не указали, что являетесь животным.</div>"
}
else
{
    if( $upsum != "да" || $upsum != "нет" )
    {
        echo "<div class='lorem'>Некорректно введены данные.</div>"
    }
    else{
        if( $upsum == "да" )
        {
            echo "<div class='lorem'>Вы указали, что вы - животное.</div>"
        }
        else
        {
            echo "<div class='lorem'>Вы указали, что вы - не животное.</div>"
        }
    }
}

if( ($lorem = "да" && $upsum = "да") || ($lorem = "нет" && $upsum = "нет") )
{
    echo "<div class='lorem'>Вы лжёте</div>";
}
else
{
    echo "<div class='lorem'>Похоже на правду</div>";
}

echo "</body></html>";
?>
ля того, что бы изменить в адресной строке file как в скрипе я писал надо все слова file изменить на свои.
Достаточно сам параметр в $_GET запросе изменить, и всё на этом.
 
  • Like
Реакции: vadim74a и rohypnol
Это не название в адресной строке, а имя параметра.
Этих имён может быть до задницы много.
Пример в адресной строке: lorem.ru/upsum.php?человек=да&животное=нет
Пример кода (мне не лень было это писать):
PHP:
<?
$lorem = $_GET['человек'];
$upsum = $_GET['животное'];

echo "<html><head>
body
{
    background: #000;
}

.lorem
{
    background: #444;
    color: #fff;
    position: absolute;
    width: 500px;
    height: 500px;
    left: 20%;
    top: 20%;
}
</head><body>";

if( !$lorem )
{
    echo "<div class='lorem'>Вы не указали, что являетесь человеком.</div>"
}
else
{
    if( $lorem != "да" || $lorem != "нет" )
    {
        echo "<div class='lorem'>Некорректно введены данные.</div>"
    }
    else{
        if( $lorem == "да" )
        {
            echo "<div class='lorem'>Вы указали, что вы - человек.</div>"
        }
        else
        {
            echo "<div class='lorem'>Вы указали, что вы - не человек.</div>"
        }
    }
}

if( !$upsum )
{
    echo "<div class='lorem'>Вы не указали, что являетесь животным.</div>"
}
else
{
    if( $upsum != "да" || $upsum != "нет" )
    {
        echo "<div class='lorem'>Некорректно введены данные.</div>"
    }
    else{
        if( $upsum == "да" )
        {
            echo "<div class='lorem'>Вы указали, что вы - животное.</div>"
        }
        else
        {
            echo "<div class='lorem'>Вы указали, что вы - не животное.</div>"
        }
    }
}

if( ($lorem = "да" && $upsum = "да") || ($lorem = "нет" && $upsum = "нет") )
{
    echo "<div class='lorem'>Вы лжёте</div>";
}
else
{
    echo "<div class='lorem'>Похоже на правду</div>";
}

echo "</body></html>";
?>

Достаточно сам параметр в $_GET запросе изменить, и всё на этом.
html через php. Добрый вечер.