写了一个图片上传类,在WIN下可以正常操作(从上传图片到图片的读取),可是在LINUX下就不行,而且是在IDC空间商那里使用的环境,服务商说默认在LINUX下文件权限只有600,现在尝试了很多方法,从图片上传到临时文件夹处移植到指定目录下,都无法实现上传图片的权限设置,希望有经验的朋友可以指导下,以下是本人的图片上传类 <?php //文件上传类 class Fileload{ private $_error;//错误代码 private $_max_file_size;//超出设置最大值 private $_type;//类型 private $_typeArr = array('image/jpeg','image/pjpeg','image/png','image/x-png','image/gif'); private $_path;//目录设置 private $_today; //子目录 private $_fileName; private $_tmp;//临时文件 private $_linkPath; private $_linktotay; private $_conf; public function __construct($file,$max_file_siz){ $this->_conf = conf::getConf(); $this->_error = $_FILES[$file]['error']; $this->_max_file_size = $max_file_siz / 1024 ; $this->_type = $_FILES[$file]['type']; $this->_path = UPADD_HOST.$this->_conf->img_path;//获取目录设置 $this->_linktotay = date('Ymd').'/'; $this->_today = $this->_path.$this->_linktotay;//创建子目录名称 $this->_fileName = $_FILES[$file]['name'];//获取上传的文件名称 $this->_tmp = $_FILES[$file]['tmp_name']; $this->checkErrorCode(); $this->checkType(); $this->checkPath(); $this->moveload(); } //返回路径 public function getpath(){ $path = ''; $this->_linkPath = $path.$this->_linkPath; return $this->_linkPath; } //移动文件 private function moveload(){ if (is_uploaded_file($this->_tmp)){ if (!move_uploaded_file($this->_tmp, $this->setnewName())){ Tool::GetError('警告:上传失败!'); } }else { Tool::GetError('警告:临时文件不存在!'); } } //获取文件格式,然后重新立名 chmod private function setnewName(){ $nameArr = explode('.', $this->_fileName); $attr = $nameArr[count($nameArr)-1]; $newName = date('YmdHis').mt_rand(100, 1000).'.'.$attr; $this->_linkPath = $this->_conf->img_path.$this->_linktotay.$newName; return $this->_today.$newName; } //判断目录 private function checkPath(){ //设置总目录 if (!is_dir($this->_path) || !is_writeable($this->_path)){ if(!mkdir($this->_path,0777)){ TOOL::GetError('处理的总目录没有创建成功!'); } } //设置子目录 if (!is_dir($this->_today) || !is_writeable($this->_today)){ if(!mkdir($this->_today,0777)){ TOOL::GetError('处理的子目录没有创建成功!'); } } } //判断类型 private function checkType(){ if(!in_array($this->_type,$this->_typeArr)){ Tool::GetError('警告:上传的类型不合法'); } } //判断上传错误代码 private function checkErrorCode(){ if (!empty($this->_error)){ switch ($this->_error){ case 1 : Tool::GetError('警告:上传值超过了约定最大值!'); break; case 2 : Tool::GetError('警告:上传值超过了最大'.$this->_max_file_size.'KB'); break; case 3 : Tool::GetError('警告:只有部分文件被上传,但数据已全部丢失!'); break; case 4 : Tool::GetError('警告:没有任何文件被上传!'); break; default: Tool::GetError('警告:未知错误!'); } } } }//edn fileload ?> NEW初始化,设置的参数 $load = new Fileload('url',$_POST['MAX_FILE_SIZE']); $path = $load->getpath();//返回的路径,设置一个变量用来把地址保存到数据库 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。