我正在使用codeigniter 3.0.6的项目上工作,我需要在一些模块中上传图像。问题是move_uploaded_file返回错误代码0,但文件无处可寻。我目前在我的本地主机上运行此代码。如果它返回一个错误代码,那么我可以做一些事情…有人能帮我一下吗?
我读过Move_uploaded_file()函数也不工作,我下面的代码是基于一个所谓的"工作示例"的答案。但仍然不工作(错误代码0,但在目录中找不到文件)。mkdir($uploaddir, 0777, true);
部分似乎没有帮助。
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form enctype="multipart/form-data" action="submit" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="51200000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>
这是我的控制器文件(test.php):
function display()
{
$this->load->view('display');
}
function submit() {
$uploaddir = '/assets/img/guide/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (!file_exists($uploaddir)) {
mkdir($uploaddir, 0777, true);
}
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.'n";
} else {
echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Error code:';
print_r($_FILES['userfile']['error']);
print "</pre>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
echo $this->load->view('display', $this->data);
}
,这是我提交表单后的结果:
文件有效,上传成功。
错误代码:0
这里是一些更多的调试信息:[userfile] => Array([name] =>绣球花。jpg[type] => image/jpeg[tmp_name] => C:'xampp'tmp'php46FD.tmp[error] => 0[size] => 595284)
)
事实证明文件是上传的,但不是去我的项目的基本文件夹(D:/myproject/dev/),文件被上传到硬盘文件夹(D:/),所以我猜这个谜团已经解决了。我只需要弄清楚如何直接上传的目标文件夹。也许我会把它放在另一个问题贴子里。
谢谢大家