求助CI的上传类出错,不知道怎么弄了
本帖最后由 fute598 于 2012-4-19 11:22 编辑想用CI做个网盘,给用户保存文档,每次上传一个文件
上传图片文件没有问题,正常,很顺利
当我试着上传word文档的时候,就老报错:
"尝试移动文件到目标文件夹时出错"
本人分析应该不是权限的原因,因为上传图片文件没有事呀?求指点,谢谢。
public function uploaddiskfile(){
$folder = date('Ymd');
$date_folder = $_SERVER['DOCUMENT_ROOT'].'/disk/download/'.$folder.'/';
if( !is_dir($date_folder) ) mkdir($date_folder);
$config['upload_path'] = $date_folder;
$config['allowed_types'] = 'rmvb|rm|avi|3gp|mp4|doc|docx|html|php|asp|aspx|xml|exe|gif|jpg|png|bmp|txt|pdf|xlsx|ppt';
$config['max_size'] = 10*1024*1024;
$config['remove_spaces'] = TRUE;
$this->load->library('upload', $config);
if( !$this->upload->do_upload() ){
$back = array('state'=>'', 'msg'=>'上传错误:'.$this->upload->display_errors('', ''));
}else{
$fileInfo = $this->upload->data();
$back = $fileInfo;
}
echo json_encode($back);
}
附上代码,求高人指点,谢谢 把错误信息贴一下吧,原始错误信息。 Hex您好,最原始的错误就是"<p>尝试移动文件到目标文件夹时出错</p>"
我只不过把<p>标签去掉了
从错误提示只能看出来,你的文件无法移动到你的目标目录,可能的原因很多。
我建议你跟踪一下 upload.php 看看具体是哪里出错了。 本帖最后由 fute598 于 2012-4-19 14:30 编辑
经检查是中文文件名的问题,怎么办呢? fute598 发表于 2012-4-19 14:07 static/image/common/back.gif
经检查是中文文件名的问题,怎么办呢?
不要使用中文文件名,尽量少使用中文,因为计算机是老外发明的。。。 修改upload类第306行(CI 2.1)
/*
* Move the file to the final destination
* To deal with different server configurations
* we'll attempt to use copy() first.If that fails
* we'll use move_uploaded_file().One of the two should
* reliably work in most environments
*/
// @fix 中文文件上传 iconv("utf-8","gb2312//IGNORE",$this->file_name)
if ( ! @copy($this->file_temp, $this->upload_path.iconv("utf-8","gb2312//IGNORE",$this->file_name)))
{
if ( ! @move_uploaded_file($this->file_temp, $this->upload_path.iconv("utf-8","gb2312//IGNORE",$this->file_name)))
{
$this->set_error('upload_destination_error');
return FALSE;
}
}
sostart 发表于 2012-4-19 18:59 static/image/common/back.gif
修改upload类第306行(CI 2.1)
/*
* Move the file to the final destination
这样上传没问题了,读取的时候要注意下
比方说上传测试.jpg
数据库里存的是D://测试.jpg
读取的时候也要转下编码:file(iconv("utf-8","gb2312//IGNORE",'D://测试.jpg')) 估计是编码错误 不过我一般都会给上传的文件重命名一下
页:
[1]