• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Upload в директорию скрипта

  • Автор темы Verden
  • Дата начала
V

Verden

значит, вот разбираюсь я сейчас с PHP...

загружаю файл с клиента на сервер это понятно, с этим разобрался.

Код:
<?php
if($_FILES["filename"]["size"] > 1024*3*1024)
{
echo ("Размер файла превышает три мегабайта");
exit;
}
if(copy($_FILES["filename"]["tmp_name"],
"c:/temp/".$_FILES["filename"]["name"]))
{
echo("Файл успешно загружен <br>");
echo("Характеристики файла: <br>");
echo("Имя файла: ");
echo($_FILES["filename"]["name"]);
echo("<br>Размер файла: ");
echo($_FILES["filename"]["size"]);
echo("<br>Каталог для загрузки: ");
echo($_FILES["filename"]["tmp_name"]);
echo("<br>Тип файла: ");
echo($_FILES["filename"]["type"]);
} else {
echo("Ошибка загрузки файла");
}
?>

Но куда он уходит после этого? Вроде бы в какую-то директорию, где с HTTP работают... Как его оттуда выдрать и переименовав в ****.doc скопировать в каталог, где сидит этот скрипт, что нам по заданию и надо. Проверка типа файла не требуется. Смотрел похожую тему ниже:

Код:
 $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/uploads/'; - это мы наверное выясняем папку скрипта.
move_uploaded_file($старое имя при загрузке, $новое имя) - это для копирования

Как узнать этот самый путь к только что загруженному файлу, чтобы переместить его по новому пути, в каталог скрипта?
 
V

Verden

использую такой скрипт....

Код:
<? define(UPLOADEDFILES, "/www/hidden/");
if(isset($_FILES['ufile']['name'])){
echo "Uploading: ".$_FILES['ufile']['name']."<br>";

$tmpName = $_FILES['ufile']['tmp_name']; 
$newName = UPLOADEDFILES . $_FILES['ufile']['name']; 

if(!is_uploaded_file($tmpName) ||
!move_uploaded_file($tmpName, $newName)){
echo "FAILED TO UPLOAD " . $_FILES['ufile']['name'] .
"<br>Temporary Name: $tmpName <br>";
} else {
echo "File uploaded. Thank you!";
} 

} else {
echo "You need to select a file. Please try again.";
}
?>

выдает ошибку - Uploading: File.doc

Warning: move_uploaded_file(/www/hidden/File.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in Z:\home\Import\www\upload.php on line 9

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'Z:\tmp\php1B3.tmp' to '/www/hidden/File.doc' in Z:\home\Import\www\upload.php on line 9
FAILED TO UPLOAD File.doc
Temporary Name: Z:\tmp\php1B3.tmp

дак чтож тут поделать, чтобы оно перебрасывало файл в папку скрипта...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!