Ошибки - PHP Основная загрузка файла - PullRequest
0 голосов
/ 24 апреля 2019

HTML-код

<html>
<title>File</title>
<body>

<form enctype="multipart/form-data" action="upload_3.php" method="POST">
  <input type="hidden" name="MAX_FILE_SIZE" value="300000">
  Invia questo file: <input name="userfile" type="file"></br>
  <input type="submit" value="Invia File">
</form>

</body>

</html>

PHP код:

?php
if (!isset($_FILES['userfile']) || !is_uploaded_file($_FILES['userfile']['tmp_name'])) {
  echo 'Non hai inviato nessun file...';
  exit;    
}


if (move_uploaded_file($_FILES['userfile']['tmp_name'], "/var/www/html" . $_FILES['userfile']['name'])) {

echo "Ce l'hai fatta!";
}
else{
echo "Riprova bro";
}

?>

Я не понимаю, почему я всегда получаю сообщение об ошибке "Riprova bro".

С помощью функции "move_uploaded_file" я должен переместить файл из временного местоположения в / var / www / html, но он не работает.

Ошибка

Это моя конфигурация в файле php.ini: Конфигурация PHP.ini

Спасибо.

1 Ответ

0 голосов
/ 24 апреля 2019

Ваш код в порядке.Вы не можете загрузить файл по 3 причинам:

1) Когда достигнуто значение limit (MAX_FILE_SIZE), вы не можете загрузить любой файл, 300000 равный 300 KB, попробуйте увеличитьlimit.

У вас есть:

<input type="hidden" name="MAX_FILE_SIZE" value="300000">

Попробуйте:

<input type="hidden" name="MAX_FILE_SIZE" value="3000000">

Где 3000000 означает 3 MB

2) Вы предполагаете, что ваш путь существует, сначала проверьте, существует ли, а если нет, рекурсивно создайте свой полный путь и задайте в то время разрешение (0755):

if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/var/www/html/")) { 
  @mkdir($_SERVER['DOCUMENT_ROOT'] . "/var/www/html/", 0755, true);
}

3) В настоящее время вы предполагаете, чтоpath является правильным, ложным, путь "/var/www/html" не является, попробуйте $ _ SERVER ['DOCUMENT_ROOT'] и косую черту (/) в конце вашего пути.Посмотрите это изменение:

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . "/var/www/html/" . $_FILES['userfile']['name'])) {

С этими 3 настройками ваш скрипт работает отлично.Теперь он печатает: Ce l'hai fatta!

Наконец, я предлагаю вам исправить:

?php с <?php

Надеюсь, это поможет.

...