Php “Laravel文件例外情况”;无法移动文件";

Php “Laravel文件例外情况”;无法移动文件";,php,image,file,laravel,upload,Php,Image,File,Laravel,Upload,因此,我正在开发一个基本的文件上传系统,它在很大程度上似乎是可行的。大多数文件都能顺利完成并顺利上传,但由于某些原因,其他文件不能顺利上传,我遇到以下错误: 这不是权限错误,因为它确实适用于某些文件-我也不认为这是文件大小或文件类型问题 我的上传方式如下: $file = Input::file('photo'); $destinationPath = 'user_img/'; $extension = $file->getClientOriginalExten

因此,我正在开发一个基本的文件上传系统,它在很大程度上似乎是可行的。大多数文件都能顺利完成并顺利上传,但由于某些原因,其他文件不能顺利上传,我遇到以下错误:

这不是权限错误,因为它确实适用于某些文件-我也不认为这是文件大小或文件类型问题

我的上传方式如下:

$file = Input::file('photo');

$destinationPath    = 'user_img/';
$extension          = $file->getClientOriginalExtension();
$rand               = str_random(12);
$filename           = 'usr_'.  Auth::user()->id . '_str=' . $rand . '_file='. Crypt::encrypt($file->getClientOriginalName()) .'.'. $extension;
$upload_success     = $file->move($destinationPath, $filename);

我没有在网络上找到任何解决方案,我也不明白为什么它会抛出这个异常。有什么想法吗?

我不想在屏幕截图中计算文件名中的所有字符,但文件名的长度可能有问题

我不想在屏幕截图中计算文件名中的所有字符,但文件名的长度可能有问题

啊,该死,我的文件长度似乎超过了255个字符,因此文件系统不喜欢它。我已经从Crypt改为MD5,现在这个问题已经解决了。

啊,该死,我的文件长度似乎超过了255个字符,因此文件系统不喜欢它。我已经从Crypt改为MD5,现在问题已经解决。

在我的情况下,这就是问题所在:在文件名中使用保留字符。 以下是我获取文件名的方式:

$photo_name = "User_".md5($user->id).'_'.date('Y-m-d H:i:s').".$ext";

这意味着最终的文件名将包含类似于
-
的字符。在阅读这篇维基百科文章时,我意识到
(冒号)是一个保留字符,一旦我去掉它(通过将时间戳部分修改为
日期('Ymd_His')
,错误就消失了,上传成功了。

在我的例子中,这就是问题:在文件名中使用保留字符。 以下是我获取文件名的方式:

$photo_name = "User_".md5($user->id).'_'.date('Y-m-d H:i:s').".$ext";

这意味着最终的文件名将包含像
-
这样的字符。在阅读这篇维基百科文章时,我意识到
(冒号)是一个保留字符,一旦我去掉它(通过将时间戳部分修改为
日期('Ymd_His'))
,错误消失了,上传成功。

已经做到了。我说得很清楚。已经做到了。我说得很清楚。答对了!谢谢,在拉拉维尔聊天室得到了相同的答案:)很好,我也不想数charsBingo!谢谢,在拉拉维尔聊天室得到了相同的答案:)很好,我也不想计算字符
是我的问题所在。将其从文件名中删除后,其工作正常。谢谢。
是我的问题所在。从文件名中删除后,它将按预期工作,谢谢。。