这是我的上传课程:
class UploadModel
{
public static function upload()
{
if(empty($_FILES['image_upload']) || !isset($_FILES['image_upload'])){
// Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));
return false;
}
$image = new Image($_FILES['image_upload']);
if($image){
$upload = $image->upload();
if($upload){
//Everything is OK!
Session::add('feedback_positive', Text::get('FEEDBACK_IMAGE_UPLOAD_SUCCESS'));
return true;
}else{
//Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));
// For security reasons maybe the above is the way to go? (no super obvious error message)
Session::add('feedback_negative', $image["error"]);
return false;
}
}
}
}
但由于某种原因,第一个if语句不起作用(无论如何我都相信)。
我认为以下if语句会“停止”类的执行,返回false。
if(empty($_FILES['image_upload']) || !isset($_FILES['image_upload'])){
// Session::add('feedback_negative', Text::get('FEEDBACK_IMAGE_UPLOAD_ERROR'));
return false;
}
但它确实如此。我收到以下错误消息
警告:getimagesize():文件名在...中不能为空
警告:getimagesize():文件名在...中不能为空
警告:无法修改标头信息 - 已发送的标头 (输出开始于
在虚拟的ubuntu框中,应用程序继续,至少从Session::add('feedback_negative', $image["error"]);
给我错误(找不到图像)
但是在我的开发MAMP服务器(mac os)上,应用程序在上一条错误消息处停止。
而且,我认为这是第一个if声明。
答案 0 :(得分:2)
$_FILES
。
检查大小以查看是否确实存在文件:
if ($_FILES['image_upload']['size'] > 0) {
您还可以检查文件名:
if (is_uploaded_file($_FILES['image_upload']['tmp_name'])) {
如果您执行var_dump($_FILES);
,您将更好地了解您接收的数据。