对文件重命名失败,提示服务器异常

但是并没有错误日志信息,起码我在日志列表和文件中没有看到
符号去掉试一下
只有中文,没有符号
熊孝兵 @.***> 于2023年4月7日周五 14:34写道:
符号去掉试一下
— Reply to this email directly, view it on GitHub https://github.com/lsky-org/lsky-pro/issues/644#issuecomment-1499987308, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMW2GBEWHLN4OHURPIFPAN3W76YO3ANCNFSM6AAAAAAWV6BIXY . You are receiving this because you authored the thread.Message ID: @.***>
好像连后缀的.也不能用,后缀删除也不影响图片格式,目前来说是这样的
我也遇到了这个问题
我也遇到了这个问题,v2版本没法重命名,报错信息一样,求解答!!!我去看storage/logs,是空的,没有报错日志。
好像连后缀的.也不能用,后缀删除也不影响图片格式,目前来说是这样的
的确,我按照你说的试了,如果保留下划线符号但删除文件后缀,是可以保存的,但上传之后文件会自动命名为本地中带格式后缀的名称。
在 /app/Services/ImageService.php 文件中,我找到一个函数:
$image->fill([
'md5' => md5_file($file->getRealPath()),
'sha1' => sha1_file($file->getRealPath()),
'path' => $configs->get(GroupConfigKey::PathNamingRule) ? dirname($pathname) : '',
'name' => basename($pathname),
'origin_name' => $file->getClientOriginalName(),
'size' => $file->getSize() / 1024,
'mimetype' => $file->getMimeType(),
'extension' => strtolower($extension),
'width' => $width,
'height' => $height,
'is_unhealthy' => false,
'uploaded_ip' => $request->ip(),
]);
我对比了数据库,文件保存的初始名称就是 origin_name,其他的应该也是保存在数据库中的图片信息,所以看上去是通过这里设置的 origin_name。我想做一些修改,但我没有学习过 php,只能自己猜着去尝试。我看到这个 getClientOriginalName,猜测它是用来获取本地文件名称的,我想用从右侧开始匹配正则匹配的方式,把文件名分割成两部分,例如 aaa.jpg,分割成 aaa 和 jpg,这样我就可以只保留名称 aaa,反正在图床中显示的文件名称中的后缀部分对文件实际没有影响。毕竟这只是展示名称,真正的文件名已经按照规则自动修改了。只保留前半部分看着还顺眼,尤其是如果保存后半部分的话,我再重命名时还需要手动删掉后缀,不如提前统一格式。
所以,我尝试修改后这个值为:
'origin_name' => preg_split("/(?<=\.).*$/", $file->getClientOriginalName(), $limit = 2)[0],
修改后成功了,这样就可以把后缀去掉,在上传时自动命名为纯文件名了!