针对图片上传出现 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',
        ],
    ],

这样就暂时绕开了这个坑。。。。。。。

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 4
xin6841414

遇到同样的问题, 直接用ln命令解决了,项目根目录执行:
ln -s ../storage/app/public public/storage
碰到的试试行不行!

4年前 评论

谢谢咯,试了好多个方法,最终还是用了你的方法

4年前 评论

我刚遇到这个问题 使用 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()) {

252| return symlink($target, $link);
253| }
254|
255| $mode = $this->isDirectory($target) ? 'J' : 'H';


可能是环境问题!

4年前 评论

@maogu @雷 计算机配置->window设置->安全策略->本地策略->用户权限分配->创建符号链接->添加Everyone
注:重启电脑才生效 这个是重点,不重启不行

3年前 评论
qingyan233 3年前
zhenming 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!