在ci框架中使用php的代码上传文件有问题
今天,我没有使用ci框架中的类上传文件,使用的是php本身的上传函数,但是出现下面的错误
Message: move_uploaded_file(http://localhost/test2/upload/20111107101155eye.jpg) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections
Filename: controllers/upload.php
Line Number: 49
A PHP Error was encounteredSeverity: Warning
Message: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\xampp\tmp\php2822.tmp' to 'http://localhost/test2/upload/20111107101155eye.jpg'
Filename: controllers/upload.php
Line Number: 49
这是我的代码
function handle(){
$array_type=array(
"jpg",
"gif",
"png",
"jpeg",
"JPEG",
"JPG",
"GIF",
"PNG",
"rar");//上传文件的类型
date_default_timezone_set("PRC");
$time=date("Ymdhms",time());
filepath为文件上传后保存的文件夹
$filepath=base_url().'upload/';
$filename为我的file的名字
$filename='userfile';
$name=$filepath.$time.$_FILES[$filename]['name'];
$type= substr(strrchr($_FILES[$filename]['name'], "."), 1);//获得上传的后缀
if(in_array($type, $array_type)){
//如果上传文件合法
if($_FILES[$filename]['size']>3000000){
$value=$time.$_FILES[$filename]['name'];
return $value; //上传文件不可以大于2M
}
else if(move_uploaded_file($_FILES[$filename]["tmp_name"], $name)){
$value=$time.$_FILES[$filename]['name'];
return $value;//上传成功
}
}else{
$value=$time.$_FILES[$filename]['name'];
return $value;//上传文件不合法
}
}
看信息,好像是没有权限移动文件,而且你要移动到的路径为什么是个URL而不是绝对地址呢? $filepath=base_url().'upload/';
这个感觉有问题 楼上说的对,$filepath是文件系统路径,而 base_url() 这是 URL。
文件系统和URL是两码事,不能混淆。 楼主解决了吗 HEX 兄说的对, 只要将url换成文件的路径既可以了!
可以用$_SERVER['DOCUMENT_ROOT'] 然后连接上你的upload路径就可以了!
已经测试可以成功移动上传文件!
页:
[1]