Answer the question
In order to leave comments, you need to log in
How to implement a file upload form of a specific php format?
Hello!
I can't figure out how to implement the following: You
need to upload a file to a specific folder on the server. File with xlsx extension.
I don't know much about php, I found this code, uploaded it to the server:
index.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Загрузка файлов на сервер</title>
</head>
<body>
<noindex>
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="uploadedFile"><br>
<input type="submit" value="Загрузить"><br>
</form>
</noindex>
</body>
</html>
<?php
if(isset($_POST['upload'])){
$whitelist = array(".xlsx");
$error = true;
//Проверяем разрешение файла
foreach ($whitelist as $item) {
if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
}
if($error) die("Ошибка, Вы можете загружать только xlsx ");
$folder = '/folder/';
$uploadedFile = $folder.basename($_FILES['uploadFile']['name']);
if(is_uploaded_file($_FILES['uploadFile']['tmp_name'])){
if(move_uploaded_file($_FILES['uploadFile']['tmp_name'],
$uploadedFile)){
echo "Файл загружен";
}
else {
echo "Во время загрузки файла произошла ошибка";
}
}
else {
echo "Файл не загружен";
}
}
?>
Answer the question
In order to leave comments, you need to log in
Found another code, it uploads files to the server without problems. But it downloads all files in a row, and I need it to download only xlsx
<!DOCTYPE html>
<html prefix="og: http://ogp.me/ns#"><head>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta http-equiv="Content-Type" content="text/html; charset=utf8" />
<link type="text/css" rel="stylesheet" href="styles.css" media="all" />
</head>
<title>Загрузка файлов на сервер с помощью PHP функции</title>
<body>
<?php
// Загрузка файлов
function upload($filename, $pach, $flag = false)
{
// $filename - это свойство name в input
// $pach - директория куда будет сохранён загруженный файл
// директория загрузки должна иметь доступ 777
// $flag - по умолчанию false (0),
// определяет перезапись существующего файла в директории, если выставлен TRUE (1)
// Проверяет существует ли директория и возможно ли её открыть из этого скрипта
if(!opendir($pach)){return 'Директория сохранения файлов, указана неверно!';}
// устанавливаем директорию загрузки файла
$uploadfile = $pach.basename($_FILES[$filename]['name']);
// Устанавливаем вариант перезаписи файла
// если false, файл не перезаписывается, а выдаётся предупреждение.
if(!$flag){
// Проверяем существует ли такой файл в директории
if(is_file($uploadfile)) return("<div class='error'><p>ВНИМАНИЕ! Такой файл уже существует.</p></div>");
}
if(!empty($filename))
{
// Ограничения размера загружаемого файла
if($_FILES[$filename]['size'] > 1024*2*1024)
{
return("<div class='error'><p>Размер файла превышает 2 мегабайта</p></div>");
}
// Проверяем загружен ли файл
if(is_uploaded_file($_FILES[$filename]['tmp_name']))
{
// Если файл загружен успешно, перемещаем его
// из временной директории в конечную
if(copy($_FILES[$filename]['tmp_name'],$uploadfile))
{
return("<div class='no-error'><p>OK! Файл успешно загружен.</p></div>");
}
else
{
return('<strong>'/*. $_FILES[$filename]['tmp_name'].$pach */.$_FILES[$filename]['name'].' </strong> - не является правильно загруженным файлом или
не может быть перемещён из временной директории.');
}
}
else
{
switch($_FILES[$filename]['error'])
{
case 1: echo "<div class='error'><p>Размер файла превышает допустимый.</p></div>";
break;
case 2: echo "<div class='error'><p>Размер файла превышает допустимый.</p></div>";
break;
case 3: echo "<div class='error'><p>Загружаемый файл был получен только частично.</p></div>";
break;
case 4: echo "<div class='error'><p>Файл не был загружен!</p></div>";
break;
}
}
}
else
{
return('Не указан файл для загрузки!');
}
}
?>
</body></html>
<?php
//Список разрешенных файлов
$whitelist = array('gif','jpeg','jpg','png');
$extension = end(explode('.',$$_FILES['fileToUpload']['name']));
$uploaddir = 'images/';
$uploadfile = $uploaddir . $_FILES['fileToUpload']['name'];
$result = array();
$flag = true;
if(in_array($extension, $whitelist)){$flag = false;}
var_dump($flag);
if (!$flag) {
if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $uploadfile)) {
$result['error'] = '';
$result['result'] = $uploadfile;
} else {
$result['error'] = 'Не удалось загрузить файл';
$result['result'] = '';
}
}
header('Content-Type: text/html; charset=utf-8');
echo json_encode($result);
?>
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question