·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Discuz上传文件过大的解决办法

401 2

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
需要有服务器权限才可修改,如果你是购买的空间请联系你的网站空间商修改!!
独立服务器/VPS 或者云服务器,需要在PHP.ini里设置以下几项:
1. 搜索
  1. post_max_size
复制代码
修改为
post_max_size =100M (自行设置)
表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等...
2.file_uploads = On  
是否允许上传文件,如果为OFF您将不能上传文件.
3.upload_tmp_dir = "D:/PHP/uploadtemp/"  
上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.
4.
  1. upload_max_filesize=2M
复制代码
upload_max_filesize = 比如 100  数值自己设定下,也不需要太大。
最大上传文件大小,此项针对上传文件时单个文件的大小.
与post_max_size之间的关系:
在社区发表贴子时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.
最重要的一步
升级数据库
ALTER TABLE `cdb_usergroups` CHANGE `maxattachsize` `maxattachsize` BIGINT( 8 ) UNSIGNED NOT NULL DEFAULT '0'
discuz社区附件文件无法保存到服务器,可能是目录属性设置问题
发表于 2010-03-23 和 20:52:42 | 作者: 茶大哥 | 阅读次数:446


今天在APMServ上调试discuz社区,添加图片、zip压缩文件等附件时提示:附件文件无法保存到服务器,可能是目录属性设置问题,请与管理员联系。而且原来上传好的附件,也无法读取,不能下载。
于是我把文件夹属性、tmp临时文件夹属性 都改了 没用!
最后找到原因了,dz后台系统设置上的问题:
基本设置—-附件设置—–附件路径 URL 地址: 改成绝对路径!附件保存方式: ./attachments
ok!
其它朋友解决方法参考:
1,如果attachments文件夹未设置777权限的,请设置。
如果attachments已经设好777权限,仍然碰到这个问题的,一般都是在后台附件设置-附件保存方式里面选了“标准”以外选项的。服务器端有新建目录权限问题,所以才会发生文件不能上传的情况。懒人解决办法就是把选项改为“标准”。
2,我把社区后台的存入方式先改为标准(全部存入同一文件夹),然后再改回来(按天……)就好了,
附件不能上传的原因:
a.服务器硬盘没有空间
b.attachement目录是否设置属性777,win主机属性everyone
c.IIS中已设置”Windows 集成身份验证”.
d.删除attachments目录下文件夹并且重新建立同名文件夹,并给予相应权限.
e.php.ini中的
将;upload_tmp_dir = 该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以修改并给其定义一个绝对路径,这里设置的目录必须有读写权限。
f.在php.ini中upload_max_filesize 的参数设置2M改大,让大文件可以上传.修改后,重新启动iis/apache/zeus就可以了
g.后台 基本设置 附件设置 不小心开启远程附件或者没有设置完整也会出现此问题
h. 后台 基本设置 附件设置 设置的附件保存方式为其他方式 不是保存在同一目录下部分服务器限制了目录属性导致无法上传附件(虚拟空间出现的比例较多)
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-18 02:02:30 | 查看全部
在Discuz中,上传文件过大的问题通常是由于PHP配置或Discuz后台设置的限制导致的。以下是一些常见的解决方法,适用于有服务器权限的用户:

### 1. 修改PHP配置文件(php.ini)
如果你有服务器权限,可以通过修改`php.ini`文件来调整上传文件的大小限制。以下是需要修改的几个关键参数:

- **`post_max_size`**:设置表单提交的最大数据大小。例如:
  1. post_max_size = 100M
复制代码

  这个值应该大于你希望上传的最大文件大小。

- **`upload_max_filesize`**:设置单个文件的最大上传大小。例如:
  1. upload_max_filesize = 100M
复制代码

  这个值应该小于或等于`post_max_size`。

- **`file_uploads`**:确保文件上传功能是开启的:
  1. file_uploads = On
复制代码


- **`upload_tmp_dir`**:设置上传文件的临时目录,确保该目录有读写权限:
  1. upload_tmp_dir = "/path/to/uploadtemp"
复制代码


修改完成后,重启Web服务器(如Apache或Nginx)以使更改生效。

### 2. 修改Discuz后台设置
在Discuz后台,也有一些设置会影响文件上传的大小和路径:

- **附件保存方式**:在Discuz后台的“全局” -> “上传设置”中,确保附件保存方式设置为“标准”或“按天/月/年”等选项。如果设置为“标准”,所有附件将保存在同一目录下,这通常是最简单的解决方案。

- **附件路径**:确保附件路径设置正确。如果附件无法保存到服务器,可能是路径设置问题。可以尝试将附件路径设置为绝对路径,例如:
  1. /var/www/html/attachments
复制代码


- **附件URL地址**:确保附件URL地址设置正确,通常设置为相对路径即可,例如:
  1. ./attachments
复制代码


### 3. 检查目录权限
确保Discuz的附件目录(通常是`attachments`目录)具有正确的读写权限。在Linux服务器上,通常需要将目录权限设置为`777`:
  1. chmod -R 777 /path/to/attachments
复制代码

在Windows服务器上,确保`attachments`目录的权限设置为`Everyone`可读写。

### 4. 检查服务器磁盘空间
如果服务器磁盘空间不足,也会导致文件无法上传。检查服务器的磁盘空间使用情况,确保有足够的空间来存储上传的文件。

### 5. 数据库升级(可选)
如果你希望调整用户组的附件上传大小限制,可以通过修改数据库来实现。例如,执行以下SQL语句来调整`maxattachsize`字段的大小:
  1. ALTER TABLE `cdb_usergroups` CHANGE `maxattachsize` `maxattachsize` BIGINT(8) UNSIGNED NOT NULL DEFAULT '0';
复制代码


### 6. 其他注意事项
- **远程附件**:如果你启用了远程附件功能,确保远程服务器的配置正确,并且远程服务器有足够的空间和权限来存储附件。
- **IIS/Apache配置**:如果你使用的是IIS或Apache,确保Web服务器的配置允许大文件上传。

通过以上步骤,你应该能够解决Discuz上传文件过大的问题。如果问题仍然存在,建议检查服务器日志或Discuz的错误日志,以获取更多详细信息。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 03:32:18 | 查看全部
在Discuz中,上传文件过大是一个常见的问题,通常可以通过以下几种方法来解决:

### 1. 修改PHP配置文件(php.ini)
如果你有服务器权限,可以通过修改`php.ini`文件来调整上传文件的大小限制。以下是需要修改的几个关键参数:

- **post_max_size**:设置表单提交的最大数据大小。例如:
  1. post_max_size = 100M
复制代码

  这个值应该大于你希望上传的最大文件大小。

- **upload_max_filesize**:设置单个文件的最大上传大小。例如:
  1. upload_max_filesize = 100M
复制代码

  这个值应该小于或等于`post_max_size`。

- **file_uploads**:确保文件上传功能是开启的:
  1. file_uploads = On
复制代码


- **upload_tmp_dir**:设置上传文件的临时目录,确保该目录有足够的磁盘空间和正确的权限:
  1. upload_tmp_dir = "/path/to/uploadtemp"
复制代码


修改完`php.ini`后,记得重启Web服务器(如Apache或Nginx)以使更改生效。

### 2. 修改Discuz后台设置
在Discuz后台,你可以通过以下步骤来调整上传文件的大小限制:

1. **用户组权限**:进入后台 -> 用户 -> 用户组 -> 编辑用户组 -> 附件相关 -> 最大附件尺寸。你可以在这里设置每个用户组的最大附件尺寸。

2. **附件设置**:进入后台 -> 全局 -> 上传设置 -> 附件设置。确保附件保存路径和权限设置正确。如果附件无法保存到服务器,可能是目录权限问题,确保`attachments`目录的权限设置为`777`(Linux)或`Everyone`(Windows)。

### 3. 数据库调整
如果你需要调整用户组的最大附件尺寸,可以通过直接修改数据库来实现。执行以下SQL语句:
  1. ALTER TABLE `cdb_usergroups` CHANGE `maxattachsize` `maxattachsize` BIGINT(8) UNSIGNED NOT NULL DEFAULT '0';
复制代码

这将允许你设置更大的附件尺寸。

### 4. 检查服务器磁盘空间
确保服务器上有足够的磁盘空间来存储上传的文件。如果磁盘空间不足,上传操作将失败。

### 5. 检查临时目录权限
确保PHP的临时上传目录(`upload_tmp_dir`)有正确的读写权限。如果权限不足,上传操作也会失败。

### 6. 检查远程附件设置
如果你启用了远程附件功能,确保远程服务器的配置正确,并且远程服务器有足够的空间和权限来存储上传的文件。

### 7. 检查IIS/Apache配置
如果你使用的是IIS或Apache,确保Web服务器的配置允许大文件上传。例如,在Apache中,你可能需要调整`LimitRequestBody`参数。

### 8. 检查附件保存方式
在Discuz后台,确保附件保存方式设置为“标准”或“按天/月/年”等选项,并且服务器有权限创建新的目录。

### 9. 检查PHP错误日志
如果以上方法都无法解决问题,查看PHP错误日志,可能会提供更多关于上传失败的详细信息。

### 总结
通过以上步骤,你应该能够解决Discuz上传文件过大的问题。如果你使用的是虚拟主机,可能需要联系主机提供商来调整这些设置。如果你有服务器权限,直接修改`php.ini`和Discuz后台设置是最直接的方法。

如果你在操作过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net/)寻求帮助,我们的技术团队会尽力为你提供支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:18.224.30.216,GMT+8, 2025-4-3 21:56 , Processed in 0.309553 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表