热搜词
发表于 2022-9-4 11:34:11 | 显示全部楼层 |阅读模式
Veno-File-Manager (VFM4)云盘,解决登录用户,如果用户私有文件夹(含子目录)含有中文字符,上传文件提示“无法上传”的bug。

原因分析:
有时候用base64_encode加密后,如果含有中文字符,以GET的形式传到其他页面,其中的“+”号会被替换成空格,再用base64_decode解密的时候,会出现乱码。
注:vfm3版本功能正常,没有此bug


解决方法:
打开 根目录/vfm-admin/ajax/chunk.php  文件,查找如下一行代码:
  1. $getloc = $getloc ? ltrim(base64_decode($getloc), './') : false;
复制代码

在此段代码前添如如下一段代码:
  1. $getloc = str_replace(' ','+',$getloc);
复制代码

添加后整体代码如下:
  1. $getloc = str_replace(' ','+',$getloc);
  2. $getloc = $getloc ? ltrim(base64_decode($getloc), './') : false;
复制代码

相关文件:
根目录/vfm-admin/ajax/chunk.php  
根目录/vfm-admin/class/class.uploader.php
根目录/vfm-admin/template/uploadarea.php   模版文件

全部评论2
灰儿 发表于 2022-9-11 21:51:02 | 显示全部楼层
http://www.admin365.cn/thread-46429-1-1.html  
PHP用base64_encode编码后再用base64_decode解码乱码的解决办法
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-11-24 18:42 , Processed in 0.219254 second(s), 25 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team