这个问题已被类似地问过几次,但那些答案并不适用于我所遇到的问题。我已经检查了所有。
基本上,函数move_uploaded_file每次都返回false,即使我觉得我连续都有我的鸭子。没有错误,它只返回false。
我已检查过正在上传的文件,但没有错误。
这可能是权限问题,我尝试使用chmod(dir,0777)更改我上传图像的目录。如果是权限问题,我不确定这是否会修复它。编辑 - 检查目录的可写入(dir),并说它是可写的。
我的表单中设置了enctype =“multipart / form-data”属性。
这是我的代码:
function uniqueName()
{
$target = dirname(__FILE__) . '/TestProject/';
$uid = uniqid();
$ext = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION);
$_FILES['photo']['name'] = $uid . "." . $ext;
if(move_uploaded_file($_FILES['photo']['name'], $target . $_FILES['photo']['name']))
echo("upload succeeded");
else {
echo("upload failed");
}
return $target . $_FILES['photo']['name'];
}
我错过了什么吗?任何帮助将不胜感激。
答案 0 :(得分:2)
修正了它,move_uploaded_files()的第一个参数需要tmp_name,而不是名称。
答案 1 :(得分:1)
首先关闭,我有时会忘记确保您的表单如下:
<form id="myform" name="myform" action="#" method="post" enctype="multipart/form-data">
这是
的关键部分enctype="multipart/form-data">
就上传而言,我使用以下内容并且每次都有效:
if ($_FILES["fuImg"]["error"] > 0)
{
echo "Error: " . $_FILES["fuImg"]["error"] . "<br>";
}
else
{
move_uploaded_file($_FILES["fuImg"]["tmp_name"], "../img/bands/" . $_FILES["fuImg"]["name"]);
}