PHP move_uploaded_file本地正常服务器报错(错误码6)求助
解决PHP文件上传错误码6(临时文件夹不存在)的问题
首先明确:错误码6对应UPLOAD_ERR_NO_TMP_DIR,说明PHP无法找到处理上传文件的临时目录——你手动创建的temp文件夹没用,因为PHP默认使用配置指定的临时目录,你没告知它要使用你新建的这个目录。
排查与解决步骤:
确认PHP当前的临时目录
新建一个info.php文件,内容如下:<?php phpinfo(); ?>上传到服务器并访问,查找
upload_tmp_dir项,查看PHP当前配置的临时目录。如果该项为空,说明PHP使用系统默认临时目录,但这个目录可能不存在或权限不足。指定PHP使用你创建的临时目录
有两种可行方式:- 代码内临时设置:在上传代码最开头添加一行,将临时目录指向你创建的
temp文件夹(必须用绝对路径,避免相对路径出错):
同时确保// 替换为服务器上temp文件夹的绝对路径,比如网站根目录下的temp ini_set('upload_tmp_dir', $_SERVER['DOCUMENT_ROOT'] . '/temp/');temp文件夹权限设置为755(比777更安全,PHP进程需具备读写权限)。 - 创建自定义配置文件:如果服务器允许,在网站根目录新建
php.ini(共享主机可能需用.user.ini),添加一行:
例如网站根目录为upload_tmp_dir = /你的服务器绝对路径/temp//var/www/html,则路径写为/var/www/html/temp/。
- 代码内临时设置:在上传代码最开头添加一行,将临时目录指向你创建的
修正目标上传目录的路径
代码中$targetFolder = 'uploads/';使用的是相对路径,服务器上脚本的执行目录可能与本地不同,易导致路径错误。改为绝对路径更稳妥:$targetFolder = $_SERVER['DOCUMENT_ROOT'] . '/uploads/';同样确保
uploads文件夹权限为755。调整权限的安全建议
不要使用777权限,这会带来严重安全风险。755权限(所有者读/写/执行,组和其他读/执行)足够PHP进程读写文件夹,同时避免恶意访问。
补充说明
服务器上没有php.ini文件是正常情况——很多共享主机不会暴露默认配置文件,但你可以自行创建自定义配置文件覆盖默认设置,只要服务器支持即可。
内容的提问来源于stack exchange,提问作者Görkem
相关产品推荐
相关产品推荐

