我很抱歉我的英语技能,但我完全堆叠并需要帮助。我有旧的开发人员服务器和新的,我也有PHP代码 -
<?php
// error reporting
error_reporting(E_ALL);
ini_set("display_errors", 1);
print '<pre>';
var_dump($_FILES);
print '</pre>';
?>
<form action="/test.php" method="post" enctype="multipart/form-data">
<input type="file" name="preview" class="text" size="80" />
<input type="submit" value="send" />
</form>
在旧服务器上它创建文件确定,但在新服务器上这不起作用。我将不胜感激任何建议。
答案 0 :(得分:1)
我假设您的新服务器是* nix系统。
当浏览器将上传的文件发送到服务器时,它最初被放入tmp
文件夹。
当您test.php
move_uploaded_file()
时tmp
将upload_tmp_dir
文件夹移动到您网站的正确位置。
检查php.ini参数upload_tmp_dir string
The temporary directory used for storing files when doing file upload.
Must be writable by whatever user PHP is running as.
If not specified PHP will use the system's default.
If the directory specified here is not writable, PHP falls back to the
system default temporary directory. If open_basedir is on, then the
system default directory must be allowed for an upload to succeed.
,然后检查指向的任何文件夹是否具有您的Apache Web服务器帐户的正确访问权限。
发表评论后
来自手册
upload_tmp_dir
因此,如果您没有{{1}}的设置,它将使用系统默认临时文件夹。 可能没有正确的设置来允许您的Web服务器帐户访问。
此外,您将看不到在tmp文件夹中上传的文件,因为当应该从tmp文件夹处理到正确位置的脚本完成时,PHP会销毁它。出于明显的安全原因! 或者事实上在你的情况下因为它无法写入该目录它永远不会到达那里因为这是你的基本问题。