我不知道如何解决这个问题,但问题是它不会上传到服务器,我用来托管网站,它创建文件夹就好了,但不会移动它。移动的编码如下。
这是我得到的错误 警告:move_uploaded_file(./ userdata / profile_pics / iOy1pQXTZsLw7VA /)[function.move-uploaded-file]:无法打开流:第103行/home/a4640336/public_html/account_settings.php中的目录
以及此错误代码
警告:move_uploaded_file()[function.move-uploaded-file]:无法在/ home / a4640336 / public_html / account_settings中将'/ tmp / phpX1zVno'移动到'./userdata/profile_pics/iOy1pQXTZsLw7VA/'第103行的.php
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注释掉的部分是为了能够看到错误
答案 0 :(得分:1)
对于那些在Windows和IIS上使用 PHP 的人,您应该将"upload_tmp_dir"
中的php.ini
值设置为您的网站目录所在的某个目录,创建该目录,以及然后为您为网站目录设置相同的权限。否则,当您上传文件并进入C:\ WINDOWS \ Temp,然后将其移至您的网站目录,其权限将无法正确设置。如果您尝试上传大于post_max_size值的文件(或多个文件),页面只会自行刷新,不会抛出任何错误。
目标目录必须存在; move_uploaded_file()
不会自动为您创建。
您必须
确保该文件不为空。
确保文件名用英文字符,数字和(_-。)符号表示,以获得更多保护。
- 确保文件名不超过250个字符。
- 检查您要允许的文件扩展名和Mime类型 项目。您可以使用:pathinfo()。或者您可以使用正则表达式来检查文件扩展名,例如
- 检查文件大小并确保php.ini上传文件的限制 是你想要的,你可以从here开始。
- 检查文件内容是否有错误的代码或类似的内容 功能
醇>
move_uploaded_file($_FILES["file"]["tmp_name"], "../uploads/" . $_FILES["file"]["name"]);
同时检查dir
是否具有可写权限
答案 1 :(得分:0)
您需要使用服务器路径进行文件上传
$files = glob($_SERVER["DOCUMENT_ROOT"]."/myFolder/*");
$ _ SERVER [" DOCUMENT_ROOT"]将获得服务器路径,如var / host / public_html / your_folder
这可以帮助你