2016-02-13 118 views
1

我不知道如何解决此问题,但问题是它不会上传到服务器,即时通讯使用托管网站它创建文件夹就好,但不会移动它。移动的编码在下面。php move_uploaded_file不会将文件移动到托管服务器

这是错误我得到 警告:move_uploaded_file(./的userdata/profile_pics/iOy1pQXTZsLw7VA /)[function.move上传文件]:未能打开流:是在/ home/a4640336目录/public_html/account_settings.php上线103

和以及该错误代码

警告:move_uploaded_file()以[function.move上传文件]:无法移动“/ TMP/phpX1zVno '到' ./userdata/profile_pics/iOy1pQXTZsLw7VA/”在上线/home/a4640336/public_html/account_settings.php 103

move_uploaded_file(@$_FILES["profilepic"]["tmp_name"],"./userdata/profile_pics/$rand_dir_name/".$FILES["profilepic"]["name"]); 
     echo "Your profile pic has been updated!"[email protected]$_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注释掉部分被做是为了能够看到错误

+0

是正确的道路? –

+0

尝试给你想要保存的位置的正确路径。如果你上传的目录是dir,我们也可以检查dir是否有可写的权限../向上移动等等。 –

+0

我已经改变了道路,即我的源与我改变它../到./甚至直接从/ home/...,然后甚至/ public_html/...的完整路径,没有任何东西迄今为止工作 – TheLiveitup34

回答

1

对于使用PHP在Windows和IIS的,你应该在php.ini"upload_tmp_dir"值设置为围绕在您的网站的一些目录目录是,创建该目录,然后设置它为您的网站目录设置相同的权限。否则,当您上传文件并进入C:\ WINDOWS \ Temp,然后将其移至您的网站目录时,其权限将无法正确设置。并且如果您尝试上传大于post_max_size值的文件(或多个文件),页面只会刷新本身,并且不会引发错误。

目标目录必须存在; move_uploaded_file()不会自动为您创建。

您必须

  1. 确保该文件不为空。

  2. 请确保文件名中包含英文字符,数字和(_-。)符号,以获得更多保护。

  3. 确保文件名不超过250个字符。
  4. 检查您想允许在您的 项目中使用的文件扩展名和MIME类型。您可以使用:pathinfo()。或者你可以使用正则表达式来检查文件扩展名,例如
  5. 检查文件大小并确保php.ini上传文件的限制 是你想要的,你可以从here开始。
  6. 检查文件内容,如果有一个坏的代码或类似这样的 功能的东西
move_uploaded_file($_FILES["file"]["tmp_name"], "../uploads/" . $_FILES["file"]["name"]); 

还要检查dir写入权限

0

你需要使用服务器路径文件上传

$files = glob($_SERVER["DOCUMENT_ROOT"]."/myFolder/*"); 

$ _ SERVER [ “DOCUMENT_ROOT”]会得到这样的VAR /主机服务器的路径/的public_html /您的文件夹

愿这帮助你