错误-PHP基本文件上传

时间:2019-04-24 12:07:39

标签: php file file-upload upload

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,但这是行不通的。

Errors

这是我在php.ini文件中的配置: PHP.ini configuration

谢谢。

1 个答案:

答案 0 :(得分:-2)

您的code正常。由于以下三个原因,您无法upload进行文件操作

1)到达limitMAX_FILE_SIZE)时,您无法upload等于300000的任何文件300 KB,请尝试增加{ {1}}。

您有:

limit

尝试:

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

<input type="hidden" name="MAX_FILE_SIZE" value="3000000"> 3000000的地方

2)您假设您的3 MB存在,请首先检查是否存在,如果不存在,请递归创建path并在full pathpermission)期间进行设置:

0755

3)您当前假设if (!is_dir($_SERVER['DOCUMENT_ROOT'] . "/var/www/html/")) { @mkdir($_SERVER['DOCUMENT_ROOT'] . "/var/www/html/", 0755, true); } 是正确的,错误的,路径path不是,请尝试$_SERVER['DOCUMENT_ROOT']和斜杠("/var/www/html")在/的结尾。看到此更改:

path

通过这3种调整,您的if (move_uploaded_file($_FILES['userfile']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . "/var/www/html/" . $_FILES['userfile']['name'])) { 可以完美运行。现在打印:script

最后,我建议您修复:

Ce l'hai fatta!?php

我希望这会有所帮助。