在我的cakePHP模型中,我尝试使用自定义验证器将文件移动到新位置,检查其成功与否。 自定义方法是:
//custom method to check image
public function processCoverUpload($check = array()) {
if (!is_uploaded_file($check['issue_cover']['tmp_name'])) {
return FALSE;
}
if (!move_uploaded_file($check['issue_cover']['tmp_name'], WWW_ROOT . 'img' . DS . 'uploads' . DS . $check['issue_cover']['tmp_name'])) {
return FALSE;
}
$this->data[$this->alias]['issue_cover'] = 'uploads' . DS . $check['issue_cove']['tmp_name'];
return TRUE;
}
但是$check['issue_cove']['tmp_name']
会返回文件名,包括其路径。
这将导致move_uploaded_file中的路径字符串错误。那么我怎么能只有'tmp_name'?
$ check [' issue_cove'] [' tmp_name']为F:\xampp\tmp\phpF765.tmp
但我只想phpF765.tmp
。
答案 0 :(得分:0)
这是一种方式 - 可能更好的方式: - )
$fname = end(explode('\\',$check['issue_cover']['tmp_name']));
$ fname现在应该有你想要的字符串。
ps假设它应该是issue_cover而不是issue_cove,所以如果我的假设不正确则改变!