Skip to content

Instantly share code, notes, and snippets.

@platinize
Created February 11, 2018 12:27
Show Gist options
  • Save platinize/00c17bab299f755d1d81282353e83325 to your computer and use it in GitHub Desktop.
Save platinize/00c17bab299f755d1d81282353e83325 to your computer and use it in GitHub Desktop.
Php6Tasks
<h1>index.php</h1>
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
?>
<p>1. Создайте форму загрузки файлов на сервер. Принимайте отправляемых файл и перемещайте в место хранения.</p>
<form action="server.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file" >
<p><input type="submit" name="sendFirst"></p>
</form>
<p>2. Ограничьте объем и тип файлов, загружаемых через форму .</p>
<form action="server.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file" >
<p><input type="submit" name="sendSecond"></p>
</form>
<p>3. Создайте форму для загрузки изображений. После загрузки изображения должны отображаться на странице. 3'(4). Форма и обработка должны быть в отдельных файлах</p>
<form action="server.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file" >
<p><input type="submit" name="sendThird"></p>
</form>
<p>4(5). Сделайте загрузку файлов через iframe</p>
<form action="server.php" method="POST" enctype="multipart/form-data" target="iframe">
<input type="file" name="file" >
<p><input type="submit" name="sendFourth"></p>
</form>
<iframe src="" id='iframe' name='iframe' width='250' height='250'></iframe>
<p>5. Используя циклы сделайте возможность загрузки файлов из нескольких input</p>
<form action="" method="POST">
<input type="number" min='1' value='1' name="quantity" style='width: 50px;'>Выберите количество загружаемых файлов
<p><input type="submit" name="createForm" value="Создать форму"></p>
</form>
<?php
if (isset($_POST['createForm'])):
?>
<form action="server.php" method="POST" enctype="multipart/form-data" target="fiftTask">
<?php
for ($i=1; $i <= $_POST['quantity']; $i++):
?>
<input type="file" name="file<?php echo $i; ?>">
<?php endfor; ?>
<p><input type="submit" name="sendFifth"></p>
</form>
<iframe src="" id='fiftTask' name='fiftTask' width='500' height='500'></iframe>
<?php endif; ?>
<!-- ----------------------------------------------------------------------------------------------------------------------------- -->
<h1>server.php</h1>
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
function load() {
$destination = $_SERVER['DOCUMENT_ROOT'].'/dz6/uploads';
$fullFileName = $destination.'/'.md5(microtime().rand()).stristr($_FILES['file']['name'], '.');
move_uploaded_file($_FILES['file']['tmp_name'], $fullFileName);
return $fullFileName;
}
//1. Создайте форму загрузки файлов на сервер. Принимайте отправляемых файл и перемещайте в место хранения.
if (isset($_POST['sendFirst'])){
load();
echo "Успешно(1)";
};
//2. Ограничьте объем и тип файлов, загружаемых через форму .
$validFormats = ['image/gif', 'image/jpeg', 'text/html', 'application/zip', 'image/png'];
if (isset($_POST['sendSecond'])){
if ( array_search($_FILES['file']['type'], $validFormats) && $_FILES['file']['size'] < 3000000 ) {
load();
echo "Успешно";
} else {
echo "Файл не соответствует параметрам";
}
echo "(2)";
};
//3. Создайте форму для загрузки изображений. После загрузки изображения должны отображаться на странице.
$imageValidFormats = ['image/gif', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/svg+xml', 'image/tiff', 'image/vnd.microsoft.icon', 'image/vnd.wap.wbmp', 'image/webp'];
if (isset($_POST['sendThird'])){
if ( array_search($_FILES['file']['type'], $imageValidFormats) ):
echo "Успешно(3)<br>";
$fullFileName = load();
?>
<p><img src="uploads/<?php echo basename($fullFileName) ?>" style='width: 100%'></p>
<?php
else:
echo "Файл не является изображением(3)";
endif;
};
//5. Сделайте загрузку файлов через iframe
if (isset($_POST['sendFourth'])):
if ( array_search($_FILES['file']['type'], $imageValidFormats) ):
echo "Успешно(4)<br>";
$fullFileName = load();
?>
<img src="uploads/<?php echo basename($fullFileName) ?>" style='width: 100%'>
<?php
else:
echo "Файл не является изображением(4)";
endif;
endif;
//6. Используя циклы сделайте возможность загрузки файлов из нескольких input
if (isset($_POST['sendFifth'])):
$destination = $_SERVER['DOCUMENT_ROOT'].'/dz6/uploads';
foreach ($_FILES as $key => $value):
if ( array_search($value['type'], $imageValidFormats) ):
$fullFileName = $destination.'/'.md5(microtime().rand()).stristr($value['name'], '.');
move_uploaded_file($value['tmp_name'], $fullFileName);
?>
<p><img src="uploads/<?php echo basename($fullFileName) ?> " style='width: 100%'></p>
<?php
else:
?>
<p>Файл <?php echo $value["name"]; ?> не является изображением</p>
<?php
endif;
endforeach;
endif;
?>
<form action="index.php" method="POST" style='position: absolute; top:0; right: 0'>
<input type="submit" value="на главную">
</form>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment