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 configuration
谢谢。
答案 0 :(得分:-2)
您的code
正常。由于以下三个原因,您无法upload
进行文件操作
1)到达limit
(MAX_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 path
(permission
)期间进行设置:
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
我希望这会有所帮助。