E
E
Evgeny Ivanov2016-11-23 17:06:19
PHP
Evgeny Ivanov, 2016-11-23 17:06:19

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>

upload.php
<?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("Ошибка,&nbsp; Вы можете загружать только 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 "Файл не  загружен";
  }
}

?>

After selecting and clicking on "upload", it goes to the site.ru/upload.php page, nothing is displayed on it.
On the site php version 5.3 (you can install 5.4 and 7)
Help please)

Answer the question

In order to leave comments, you need to log in

2 answer(s)
T
tommy_13, 2016-11-23
@tommy_13

turn on error display first

E
Evgeny Ivanov, 2016-11-23
@russiaclear

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>

And I found a code for checking the uploaded file, but I don’t know how to integrate it into the code above, if it works at all.
<?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 question

Ask a Question

731 491 924 answers to any question