【发布时间】:2015-11-20 22:03:07
【问题描述】:
我正在使用 Godaddy linux 托管,但在我的网站上上传图片时遇到问题。我要允许上传的最大文件大小为 1mb,并允许扩展名 jpg、jpeg、png 和 gif。我用我的 PHP 代码限制了这一点。我可以上传小于 1mb 的图像,在这种情况下它可以正常工作。图像被上传,数据存储在数据库中。此外,当我尝试上传小于 2mb 但大于 1mb 的图像时,我的 PHP 代码可以正常工作,并且我的代码停止上传文件并显示我的最大允许文件大小为 1mb 的警告。此外,当我尝试上传其他小于 2mb 时不允许的文件类型时,一切正常。代码显示警告,文件大小和文件类型不允许。问题是当我尝试上传大于 2mb 的文件时。比我的代码不起作用。没有显示我的最大允许文件大小为 1mb 的警告。数据库已更新,但不应更新,并且标头将我重定向到成功 url。我的代码在本地服务器上运行良好,但在文件大于 2mb 时无法在 Godaddy 服务器上运行。
<?php
if (isset($_FILES['image'], $_POST['news_id'])) {
$image_name = $_FILES['image']['name'];
$image_size = $_FILES['image']['size'];
$image_temp = $_FILES['image']['tmp_name'];
$allowed_ext = array('jpeg', 'jpg', 'png', 'gif');
$image_ext = strtolower(end(explode('.', $image_name)));
$news_id = $_POST['news_id'];
$errors = array();
if (empty($image_name) || empty($news_id)) {
$errors[] = 'Oooop\'s! Something went wrong!';
} else {
if (in_array($image_ext, $allowed_ext) === false) {
$errors[] = 'Allowed file type is "jpg, jpeg, png i gif"!';
}
if ($image_size > 1048576 ) {
$errors[] = 'Max allowed file size is 1mb!';
}
}
if (!empty($errors)) {
foreach ($errors as $error) {
echo output_errors($errors);
}
} else {
$this->model->uploadImage($image_temp, $image_ext, $news_id);
header('Location: ' . URL . 'admin_panel/add_images/success');
exit();
}
}
?>
【问题讨论】:
标签: php linux file-upload