我正在使用 Godaddy Linux 主机,但在我的网站上上传图片时遇到问题。我允许上传的最大文件大小为 1mb,并允许扩展名为 jpg、jpeg、png 和 gif。我用我的 PHP 代码限制了它。我可以上传小于 1mb 的图片,在这种情况下效果很好。上传图像并将数据存储在数据库中。此外,当我尝试上传小于 2mb 但大于 1mb 的图像时,我的 PHP 代码工作正常并且我的代码停止上传文件并显示我的警告,即允许的最大文件大小为 1mb。此外,当我尝试上传其他小于 2mb 的不允许的文件类型时,一切正常,代码显示警告文件大小和文件类型不允许。问题是当我尝试上传大于 2mb 的文件时。比我的代码不起作用。没有显示我的最大允许文件大小为 1mb 的警告。数据库已更新但不应该更新, header 将我重定向到成功网址。我的代码在本地服务器上运行良好,但在文件大于 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.ini 配置中的 upload_max_filesize 和 post_max_size 我认为他们正在限制您的上传最大大小。您可以尝试使用此代码来检查 php.ini 限制是什么:
echo ini_get('post_max_size');
echo ini_get('upload_max_filesize');
关于php - Linux主机文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32233839/