Laravel文件上传或移动问题与特殊字符



我已经在我的应用程序中成功实现了Laravel文件管理的一些功能:上传,下载,移动。至少我会说它是成功的,因为它工作正常,直到我发现我在文件名/路径中存储带有一些特殊字符的文件时遇到问题

就我而言,我已经用冒号字符对其进行了评论。还有其他角色可以触发它。我可以使用文件输入成功注册表单:我的意思是没有这些字符,我可以毫无问题地上传、下载和编辑。但是一旦我在我的文件名中得到一个冒号,一个用于路径的输入字段:($filename = $request->input('inputFileName') .'.'. $file->getClientOriginalExtension();$path = $file->storeAs('folder',$filename);( 我遇到了问题。

首先,文件名不再被很好地记录:从冒号开始,文件名的其余部分没有注册。例如,假设文件名的输入是a:b;在我的文件夹中,我将注册a,而不是扩展名。不用说这让我得到File not found at path错误。当想要下载时。当我想将带有冒号的文件名更改为另一个文件名时,我也会收到该错误。我在编辑时也要注意的另一件事是,我无法将没有这些字符的文件(此处为冒号(重命名为带有它的文件。这样做时,我得到了php: Warning: rename The filename, directory name, or volume label syntax is incorrect. (code: 123).我找过它,找到了这个。它似乎与操作系统文件系统有关。我使用的是使用Laravel 5.8的Windows 10操作系统。

你们中是否有人已经遇到过这个问题,你们是如何解决这个问题的?拉拉维尔有什么事情要处理吗?..任何帮助或建议将不胜感激

不要使用原始名称保存文件,只需生成一个随机名称即可保存文件,并将原始名称(如果需要(保留在数据库中或事件中保存在保存文件旁边的另一个文件中。永远不要信任客户端输入。

最新更新