因此,当前我正在使用自定义表单,允许已登录的用户上传图像。我正在使用Wordpress media_handle_upload 函数来处理此任务。
直到最近,该功能一直可以正常工作。用户能够上传小于一兆字节的图像。但是,当尝试上传较大的图像时,将出现可怕的空白屏幕。即使我在配置文件中将'WP_DEBUG'设置为true,也不会产生错误消息。
我对此进行了测试,以获取大于4 MB的图像,即使随后出现空白屏幕,该图像实际上仍已上传到上传目录。我什至检查了数据库,发现为该图像创建的附件记录。我的托管平台配置为处理大图像,因此我无所适从。还有其他人遇到过类似的问题吗?这是代码:
function uploadGalleryImages($input_name)
{
$files = $_FILES[$input_name];
foreach ($files['name'] as $key => $value) {
$error = false;
if (trim($value) != '') {
/* Run tests for errors */
if ($files['error'][$key]) {
//return $_FILES[$input_name]['error'][$key];
$error = true;
}
$image_data = getimagesize($files['tmp_name'][$key]);
//Check for proper file types
if (!in_array($image_data['mime'], unserialize(TYPE_WHITELIST))) {
$error = true;
}
//Check if file exceeds max upload size, in this case 10 MB
if (($files['size'][$key] > MAX_UPLOAD_SIZE)) {
$error = true;
}
/* End of run tests for errors */
/* If no error, proceed to upload */
if (!$error) {
$file = array(
'name' => $files['name'][$key],
'type' => $files['type'][$key],
'tmp_name' => $files['tmp_name'][$key],
'error' => $files['error'][$key],
'size' => $files['size'][$key]
);
$_FILES = array("upload_file" => $file);
$attachment_id = media_handle_upload("upload_file", 0);
if (!is_wp_error($attachment_id)) {
//Success
} else {
//Failure
}
} else {
//Error messages
}
}
}// End foreach
return;
}