PrestaShop 1.7自定义模块上传50MB限制问题求助
PrestaShop 1.7 自定义模块上传50M限制问题解决
这个50M限制并非完全是Addons的硬编码——前端JS的限制只是表层验证,后端还有对应的PHP逻辑校验,这就是你修改bundle后的JS文件无效的原因。针对自定义模块上传到自有店铺后台的场景,完全可以修改突破限制,具体步骤如下:
1. 修改前端验证逻辑(需处理编译文件)
直接修改adminblahblahblah/themes/default/js/bundle/module/module.js这类编译后的文件会被缓存或覆盖,正确操作是:
- 找到前端源文件:
admin-dev/themes/new-theme/js/components/module-manager.js(旧版路径可能是admin/themes/default/js/module/module.js) - 定位到
maxFilesize: 50这行,将数值改为你需要的大小(比如100,单位是MiB) - 重新编译前端资源:在PrestaShop根目录执行
npm install安装依赖,再执行npm run build生成新的bundle文件;若为生产环境,也可直接替换编译后的bundle文件,但推荐从源文件修改后编译。
2. 修改后端PHP校验规则
前端修改后还需同步调整后端验证,否则上传仍会被拦截:
- 打开
src/PrestaShopBundle/Form/Type/ModuleType.php,找到file字段的验证规则,将maxSize参数从默认的50M改为目标大小(比如100M,或直接写字节数104857600) - 检查
src/Core/Module/ModuleUploader.php中的validateUploadedFile方法,确保其中的文件大小限制也同步修改为相同数值。
关键说明
- 如果你是向PrestaShop官方Addons平台上传模块,确实存在50M的硬限制,无法突破;但上传到自有店铺后台的自定义模块,通过上述修改即可解除限制。
- 修改核心文件后建议备份,避免版本更新时被覆盖;开发环境中优先使用override机制或自定义模块扩展的方式修改,减少对核心代码的直接改动。
内容的提问来源于stack exchange,提问作者psauleda
相关产品推荐
相关产品推荐

