这听起来像个愚蠢的问题但是,在上传文件后,文件不在php所说的位置。
首先是简单的测试页面:
<html><body>
<h1><?=$_FILES['imgup']['tmp_name'];?></h1>
<?
print_r($_FILES);
?>
<form enctype="multipart/form-data" method="post" action="upload.php">
<input type="file" name="imgup" id="imgup">
<input type="submit">
</form>
</body></html>
现在,print_r以纯文本形式出现:
Array ( [imgup] => Array ( [name] => ace.jpg [type] => image/jpeg [tmp_name] => /tmp/phpEdfBjs [error] => 0 [size] => 29737 ) )
所以没有错误,标准外观路径,但/ tmp没有这样的文件。此外,在我的整个系统上运行查找会出现bubkis。
仅供参考:php.ini有
max_execution_time = 120
file_uploads = On
upload_max_filesize = 2M
我上传的文件是29k
有什么想法吗?
答案 0 :(得分:21)
当收到临时文件的PHP脚本运行完毕后,临时文件将被删除:它只是一个临时文件。
您要将表单发布到的PHP脚本 - upload.php - 应该使用move_uploaded_file()
将临时文件移动到非临时位置
基本上,这个想法是:
如果上传未成功完成,或者您未将文件移动到其他位置,则会自动删除临时文件。
作为参考,您应该阅读手册的以下部分:Handling file uploads - POST method uploads
引用与您的问题相关的部分:
该文件将从中删除 临时目录在末尾 要求,如果它没有被移走 或重命名。