Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[求助] 请问上传的图片尺寸大于 4000像素,就无法上传,怎么办?

[复制链接]
大雪无痕111 发表于 2017-5-24 09:01:12 | 显示全部楼层 |阅读模式
请问上传的图片尺寸大于 4000像素,就无法上传,怎么办? 最好能支持4000像素以上的图片上传
howfarstudio 发表于 2017-5-24 18:40:56 | 显示全部楼层
Discuz教程:"没有合法的文件被上传"大尺寸图片上传解决办法

解决办法
source/class/discuz/discuz_upload.php
编辑这个文件,将
由于程序限制了大尺寸(指分辨率)附件图片,提示 “没有合法的文件被上传”
更改方法:sourceclassdiscuzclass_upload.php
找到:
代码如下:
function get_image_info($target, $allowswf = false) {
                $ext = discuz_upload::fileext($target);
                $isimage = discuz_upload::is_image_ext($ext);
                if(!$isimage && ($ext != 'swf' || !$allowswf)) {
                        return false;
                } elseif(!is_readable($target)) {
                        return false;
                } elseif($imageinfo = @getimagesize($target)) {
                        list($width, $height, $type) = !empty($imageinfo) ? $imageinfo : array('', '', '');
                        $size = $width * $height;
                        if($size > 16777216 || $size < 16 ) {
                                return false;
                        } elseif($ext == 'swf' && $type != 4 && $type != 13) {
                                return false;
                        } elseif($isimage && !in_array($type, array(1,2,3,6,13))) {
                                return false;
                        }
                        return $imageinfo;
                } else {
                        return false;
                }
        }

将 if($size > 16777216 || $size < 16 )  中16777216改大后即可解决问题。
16777216大约为5000*3356。

的16777216改大即可。
Error:500的错误
解决办法就是编辑php.ini文件

memory_limit设置得更大一些,直到图片能顺利上传。
如果是虚拟主机用户,无权修改php.ini文件,请联系服务商解决,如果服务商不予解决,就考虑关闭图片缩略相关的功能。

回复

使用道具 举报

howfarstudio 发表于 2017-5-24 18:42:15 | 显示全部楼层
Discuz X3.2上传图片附件过大413错误(discuz upload error 413)

解决方法如下:

1.修改php.ini

#打开php.ini找到并修改以下的参数,目的是修改上传限制
max_execution_time = 900
max_input_time = 900
memory_limit = 10M
upload_max_filesize = 10M
post_max_size = 10M
复制代码

修改好了之后重启一下php

2.修改nginx.conf

sudo nano /etc/nginx/ngnix.conf
#打开ngnix.conf在http { }中加入以下代码
client_max_body_size 10m;
复制代码
然后重启ngnix。

这里耽误我时间且一重启nginx就导致网站无法打开的原因是我的nginx.conf之前已经加过一段client_max_body_size 8m;因为疏忽没有发现它,在底部又加了一段client_max_body_size 10m;重复冲突,然后去掉底部刚加的,将之前加过的8m改成10m就解决了。


我的nginx在SSH上重启总是失败,索性reboot重启了服务器。php和nginx在不同环境的服务器下重启方式可能不同,自己百度吧。


补充:今天搬家后重新按照本例设置,依然遇到大图上传100%后自动取消的问题,排查很久,最后发现是php.ini中使用内存量 memory_limit默认的128M过小,设置成256后重启web后大图上传问题解决。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-27 12:32 , Processed in 0.028730 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表