第一个问题,它应该在哪里?
Accordint to php.net
默认情况下,文件将存储在服务器的默认临时文件中 目录,除非已经给出了另一个位置 php.ini中的upload_tmp_dir指令。服务器的默认目录 可以通过在中设置环境变量TMPDIR来更改 PHP运行的环境
所以我转到我的php.ini文件并找到
upload_tmp_dir =" \ xampplite \ tmp"
让我继续发布xhtml代码:
<div class="t2_c2">
<form name="f9" enctype="multipart/form-data" action="pi5.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<input name="ufile" type="file" class="te7" />
</form>
</div>
这是表格内的一个表格。
最后但并非最不重要的是提交此表单的javascript。
document.f9.submit();
因为在temp目录中有很多文件似乎不是我的文件,所以我添加了一些调试php代码来查看$ _FILES超全局关联数组。
代码
print_r($_FILES['ufile']);
返回此信息。
数组([name] =&gt; c0.css [type] =&gt; text / css [tmp_name] =&gt; F:\ xampplite \ tmp \ php317C.tmp [error] =&gt; 0 [size] =&gt; 10652)文件 c0.css
在第二次生产中生产
数组([name] =&gt; here.gif [type] =&gt; image / gif [tmp_name] =&gt; C:\ Users \ a \ AppData \ Local \ Temp \ phpC256.tmp [error] =&gt; 0 [size] =&gt; 8549 )
我觉得很奇怪,这在php.ini文件中没有指定,并且证明php.net文档无效。
生活看起来很好,直到我去[tmp_name]找到这个:
没有档案。
我的计划是更改我的php.ini文件,以便将文件直接下载到我想要的位置,但根据下面的答案,只要php脚本正在运行,该文件就会持续,所以这不会出现选择或最小的选择。这就是为什么我最初没有使用移动功能。
答案 0 :(得分:3)
tmp_name
仅在PHP脚本执行的生命周期内有效,之后文件将被清除。您需要move_uploaded_file()
到同一个脚本执行中的永久位置才能保持它。
答案 1 :(得分:1)
您需要移动上传的文件,因为它可能是临时存储的。 http://ca.php.net/manual/en/function.move-uploaded-file.php