[英]php move_uploaded_file wont move the file to the hosted server
我不知道如何解决这个问题,但问题是它不会上传到我用来托管网站的服务器,它创建的文件夹很好,但不会移动它。 移动的编码如下。
这是我收到的错误警告:move_uploaded_file(./userdata/profile_pics/iOy1pQXTZsLw7VA/) [function.move-uploaded-file]: failed to open stream: Is a directory in /home/a4640336/public_html/account_settings.php on line 103
以及这个错误代码
警告:move_uploaded_file() [function.move-uploaded-file]:无法将“/tmp/phpX1zVno”移动到“./userdata/profile_pics/iOy1pQXTZsLw7VA/”中的 /home/a4640336/public_html/account_settings.php 在线 10
move_uploaded_file(@$_FILES["profilepic"]["tmp_name"],"./userdata/profile_pics/$rand_dir_name/".$FILES["profilepic"]["name"]);
echo "Your profile pic has been updated!".@$_FILES ["profilepic"]["name"];
//$profile_pic_name = @$_FILES["profilepic"] ["name"];
//$profile_pic_query= mysql_query("UPDATE users SET profile_pic='$rand_dir_name/$profile_pic_name' WHERE username='$username'");
//header("location: account_settings.php");
总的来说,我试图改变它的位置,让它直接从源头开始,但它没有改变。 如果有人可以帮助,请帮助我!
PS注释掉的部分是为了能够看到错误
对于那些在 Windows 和 IIS 上使用PHP 的人,您应该将php.ini
的"upload_tmp_dir"
值设置为您网站目录所在的某个目录,创建该目录,然后在其上设置您为网站设置的相同权限目录。 否则,当您上传文件并进入 C:\\WINDOWS\\Temp,然后将其移动到您的网站目录时,其权限将无法正确设置。如果您尝试上传大于 post_max_size 值(或多个文件),页面只会刷新自身,不会引发错误。
目标目录必须存在; move_uploaded_file()
不会自动为您创建它。
你必须
确保文件不为空。
确保文件名中包含英文字符、数字和 (_-.) 符号,以获得更多保护。
- 确保文件名不超过 250 个字符。
- 选中您希望在项目中允许的文件扩展名和 Mime 类型。 您可以使用: pathinfo() 。 或者您可以使用正则表达式来检查文件扩展名,例如
- 检查文件大小并确保 php.ini 上传文件的限制是你想要的,你可以从这里开始。
- 检查文件内容是否有错误代码或类似功能
move_uploaded_file($_FILES["file"]["tmp_name"], "../uploads/" . $_FILES["file"]["name"]);
还要检查dir
是否具有可写权限
您需要使用服务器路径进行文件上传
$files = glob($_SERVER["DOCUMENT_ROOT"]."/myFolder/*");
$_SERVER["DOCUMENT_ROOT"] 将获取服务器路径,如 var/host/public_html/your_folder
可能这对你有帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.