【发布时间】:2013-12-31 02:55:25
【问题描述】:
我已经确定 /tmp 文件夹是可写的,并且在 php.ini 中
upload_max_filesize = 5M
post_max_size = 8M
在我的upload.html中
<html>
<body>
<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
在我的upload_file.php中
<?php
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
move_uploaded_file ($_FILES["file"]["tmp_name"] , '/var/www/html/web' );
}
?>
这是输出
Upload: screenshot 2013-12-30 15:00:54.png
Type: image/png
Size: 201.8154296875 kB
Stored in: /tmp/phpEdIgXr
但是 /tmp/phpEdIgXr 不存在!
【问题讨论】:
-
你怎么知道的?
file_exists($_FILES["file"]["tmp_name"])真的返回false吗? -
不存在是什么意思?
-
我检查了服务器的文件系统,文件不可用。早些时候,我尝试在更复杂的应用程序上执行移动,但我尝试将此作为基本情况。失败了。
-
那是一个临时文件。当 php 进程停止时,它会被删除。您需要将文件的内容复制到永久位置。
-
请记住,一旦脚本完全执行,临时文件会立即被删除。为了保留它,请将其移到其他地方。