PHP Проверьте имя файла, затем загрузите файл - PullRequest
0 голосов
/ 14 июля 2020

Здравствуйте и спасибо за помощь!

У меня есть Html и PHP файл (2 разных файла):

html:

<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<form enctype="multipart/form-data" action="Upload_File.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input name="uploadedfile" id="uploadedfile" type="file" /><br />
<br>
<input type="submit" value="Process File" Onclick="__set(document.getElementById('uploadedfile').value);" style="background-color: hsla(240, 100%, 75%,0.3);font-weight: bold;"/>
</form>
</body>
</html>

Php:

<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<form enctype="multipart/form-data" action="Upload_File.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input name="uploadedfile" id="uploadedfile" type="file" /><br />
<br>
<input type="submit" value="Upload File" Onclick="__set(document.getElementById('uploadedfile').value);" style="background-color: hsla(240, 100%, 75%,0.3);font-weight: bold;"/>
</form>
</body>
</html>

<?php
$uploadOk = 1;
$target_path_file = "Upload_Files_All/";
$N=$_FILES['uploadedfile']['name'];
$target_path = $target_path_file . basename($N);
$size=$_FILES['uploadedfile']['size'];
$FileTypeExt = pathinfo($target_path,PATHINFO_EXTENSION); 
if (isset($N))
 {
   if (empty($N))
      {
       echo "<p style='color:#ff0000;' >Please choose a file to Upload</p>";
      }
   else
      {
       if ($uploadOk==1)
         {
           if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
                {
                 echo "<strong>The file ". basename( $_FILES['uploadedfile']['name'])." is ready to upload</strong>";
                }
            else
                {
                echo "<p style='color:#ff0000;' >There was an error uploading the file, please Contact Administrator</p>";
                }
        }
        
      }
    
}
?>

Теперь я хочу загрузить файлы в систему с именем файлов: sample.xlsx sample1.xlsx

Как я изменяю код, который только файлы с одинаковыми имя (sample.xlsx или sample1.xlsx) будет загружено. и файл с другим именем выдает пользователю сообщение «пожалуйста, измените имя файла»

1 Ответ

0 голосов
/ 14 июля 2020

Существует не очень безопасный метод, использующий HTML5 и ввод / принятие. Вы можете использовать его в приложении Intr anet, где безопасность не так важна.

Такие вещи всегда должны проверяться сервером на производстве.

НЕ ИСПОЛЬЗУЙТЕ ЕГО НА INTE RNET

Только в сочетании с проверкой сервера.

Использование XLSX Mime application / vnd.openxmlformats-officedocument.spreadsheetml.sheet

AND / OR XLS Mime, application / msexcel

<input name="uploadedfile" id="uploadedfile" type="file" accept="application/msexcel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /><br />


<html>
<head>
<title>File Uploading Form</title>
</head>
<body>
<form enctype="multipart/form-data" action="Upload_File.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
<input name="uploadedfile" id="uploadedfile" type="file" accept="application/msexcel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" /><br />
<br>
<input type="submit" value="Process File" Onclick="__set(document.getElementById('uploadedfile').value);" style="background-color: hsla(240, 100%, 75%,0.3);font-weight: bold;"/>
</form>
</body>
</html>

ЛУЧШИЙ СПОСОБ

Использует переменную $ _FILES $ _FILES ['uploadedfile'] [' тип']; Вы можете проверить Mime Type

<?php
$uploadOk = 1;
$target_path_file = "Upload_Files_All/";

$accepted_mime1 = "application/msexcel";
$accepted_mime2 = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

$T=$_FILES['uploadedfile']['type'];
$N=$_FILES['uploadedfile']['name'];

if($T != $accepted_mime1 && $T != $accepted_mime2){
// We do not accept it and we unset the $_FILES
    unset($_FILES);
}

$target_path = $target_path_file . basename($N);
$size=$_FILES['uploadedfile']['size'];
$FileTypeExt = pathinfo($target_path,PATHINFO_EXTENSION); 
if (isset($N))
 {
   if (empty($N))
      {
       echo "<p style='color:#ff0000;' >Please choose a file to Upload</p>";
      }
   else
      {
       if ($uploadOk==1)
         {
           if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path))
                {
                 echo "<strong>The file ". basename( $_FILES['uploadedfile']['name'])." is ready to upload</strong>";
                }
            else
                {
                echo "<p style='color:#ff0000;' >There was an error uploading the file, please Contact Administrator</p>";
                }
        }
        
      }
    
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...