针对图片上传出现 symlink (): Input/output error 的一种解决方案?
因为利用laravel自带的storage:link 和ubuntu环境下建立软链接都无效,这样laravel本身文件配置中的 public 和local 存储方式得到的图片地址无法正常获取。 问题原因可能在于windows 的磁盘写入吧, 试过了很多方法,包括策略组和 sudo操作,基本都无效,无奈之下,只能换一种方式,绕开这个坑。图片直接存在public中,不存入storage文件夹,绕开软连接的建立。贴下修改
修改filestystem.php配置文件中public配置即可
'default' => env('FILESYSTEM_DRIVER', 'public'),
// 'public' => [
// 'driver' => 'local',
// 'root' => storage_path('app/public'),
// 'url' => env('APP_URL').'/storage',
// 'visibility' => 'public',
// ],
'public' => [
'driver' => 'local',
'root' => public_path('admin_img'),
'url' => env('APP_URL').'/admin_img',
'visibility' => 'public',
],
laravel-admin配置文件中admin.php修改存储方式为public
/*
* Laravel-admin upload setting.
*/
'upload' => [
'disk' => 'public',
'directory' => [
'image' => 'images',
'file' => 'files',
],
],
这样就暂时绕开了这个坑。。。。。。。
遇到同样的问题, 直接用ln命令解决了,项目根目录执行:
ln -s ../storage/app/public public/storage
碰到的试试行不行!
谢谢咯,试了好多个方法,最终还是用了你的方法
我刚遇到这个问题 使用 php artisan storege:link ;
ErrorException : symlink(): Input/output error
at /home/vagrant/Code/larabbs/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:252
248| */
249| public function link($target, $link)
250| {
251| if (! windows_os()) {
可能是环境问题!
@maogu @雷 计算机配置->window设置->安全策略->本地策略->用户权限分配->创建符号链接->添加Everyone
注:重启电脑才生效 这个是重点,不重启不行