这种行为的原因
所有上传的文件都临时存储在
中定义的文件夹位置
(在 php.ini 中)
upload_tmp_dir =
(了解更多信息:http://php.net/upload-tmp-dir)
这些临时存储的文件在 php 脚本执行(如前面的回答请求生命周期中所述)完成后不再存在。
在脚本执行时执行以下操作来查看上传的文件。
上传.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>
上传文件.php
<?php
if ($_FILES["file"]["error"] > 0) {
echo "Error: " . $_FILES["file"]["error"] . "<br>";
} else {
$fp=fopen("/tmp/write.log","w+");
fputs($fp,"Original Name:".$_FILES["file"]["name"].";temporay Name:".$_FILES["file"]["tmp_name"]."\n");
fclose($fp);
sleep(50000);
}
?>
通过upload.html上传文件
上传图片后在另一个终端应用tail in /tmp/write.log(因为睡眠时间太长,所以你可以找到图片)
#tail -f /tmp/write.log
将该临时文件复制到任意位置并放置原始图像文件的扩展名
例如我打印的日志行是
原始名称:digits.png;临时名称:/tmp/phpOKlpoK
(需要使用 root 权限执行此操作)
#cp /tmp/phpOKlpoK /home/sandeep/Desktop/file.png
#chown sandeep.sandeep /home/sandeep/Desktop/file.png
所以这是你上传的文件。
(
您可以使用 move_uploaded_file() 而不是执行所有这些步骤来检查上传的图像
)