我正在开发一个cakephp项目(Croogo版本)。这个用户可以在那里添加附件。但我面临着依恋的问题。我正在使用此Plugin添加附件。这在我的本地系统上适用于我,但在网站上引发错误。
这是错误
发生了内部错误。
我不知道为什么会这样。这个你能帮我吗。 提前致谢
答案 0 :(得分:0)
我通过评论用于上传和检查验证的模型的验证来解决。 这是我的代码:
var $ validate = array( 'order_id'=>阵列( 'numeric'=>阵列( 'rule'=>阵列( '数字'), 'message'=> '订单ID必须是数字', //'allowEmpty'=>假, //'required'=>假, //'last'=> false,//在此规则之后停止验证 //'on'=> 'create',//将验证限制为'创建'或'更新'操作 ) ) / * 'attachement'=>阵列( 'uploadError'=>阵列( 'rule'=> 'uploadError时', 'message'=> '封面图片上传失败。', 'allowEmpty'=>真正, ) 'mimeType'=>阵列( 'rule'=> array('mimeType',array('image / gif','image / png','image / jpg','image / jpeg','image / bmp','image / x-icon','application / pdf ','application / powerpoint','application / msword','application / rtf','text / plain','application / vnd.openxmlformats-officedocument.wordprocessingml.document','application / vnd.openxmlformats-officedocument.presentationml .presentation ' '应用程序/ vnd.openxmlformats-officedocument.spreadsheetml.sheet', '应用程序/ vnd.oasis.opendocument.text', '应用程序/ vnd.oasis.opendocument.spreadsheet',' 应用程序/ vnd.oasis.opendocument .presentation”, '应用程序/ vnd.oasis.opendocument.image')), 'message'=> '请仅上传Word文档,Powerpoint,Adobe Reader文件(PDF),图像。', 'allowEmpty'=>真正, ) 'fileSize'=>阵列( 'rule'=> array('fileSize','< =','7MB'), 'message'=> '封面图片必须小于7MB。', 'allowEmpty'=>真正, ) 'processCoverUpload'=>阵列( 'rule'=> 'processCoverUpload', 'message'=> “无法处理封面图片上传。”, 'allowEmpty'=>真正, ) ),* / );
以及上传文件的功能。
public function processCoverUpload($ check = array()){ $ remove_these = array('','`',''','\'','\','/'); $ file_name = $ check ['attachement'] ['name']; $ file_name = str_replace($ remove_these,'',$ file_name); $ path_parts = pathinfo($ file_name); $ file_name = $ path_parts ['filename']。'_'。time()。'。'。$ path_parts ['extension']; $ directory = date('Y / m /'); $ upload_path ='uploads'.DS.'attachments'.DS。$ directory; $ upload_dir = WWW_ROOT。$ upload_path;
if(!file_exists($upload_dir)) mkdir($upload_dir, 0755, true);
if (!is_uploaded_file($check['attachement']['tmp_name'])) {
return FALSE;
}
if (!move_uploaded_file($check['attachement']['tmp_name'], $upload_dir.$file_name)) {
return FALSE;
}
$this->data[$this->alias]['attachement'] = $upload_path.$file_name;
return true;
}
我评论了上述内容并在我的控制器中进行了验证。