2301_76826086 2024-06-05 10:38 采纳率: 70%
浏览 6

laravel 上传文件出错

img

img

img

img

img


我想实现一个上传文件后 点击a链接可以看见图片的功能
不知道如何解决这个错误、我应该如何修改?哪里出错了aa

  • 写回答

1条回答 默认 最新

  • 阿里嘎多学长 2024-06-05 10:43
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的截图信息,我将为您分析问题所在,并提供相应的解决方案。

    问题1: 路由定义错误

    在第一个截图中,路由定义存在语法错误。正确的路由定义应该是:

    Route::get('/index', 'myController@index');
    Route::get('/zc', 'myController@zc');
    

    请确保您的控制器名称和方法名称是正确的,并且没有语法错误。

    问题2: 控制器中的文件上传逻辑错误

    在第二个截图中,控制器的zc方法中存在几个问题:

    • $re应该是$request
    • hasfile('photo')中的hasfile应该是小写的hasFile
    • extensionO应该是extension,并且应该在if语句中。
    • move方法的路径应该是正确的,并且需要确保目录存在。
    • $path变量在拼接字符串时使用了错误的字符',应该是'/'

    修正后的代码如下:

    public function zc(Request $request)
    {
        if ($request->hasFile('photo')) {
            $file = $request->file('photo');
            $name = time().'.'.$file->extension();
            $file->move('static/upload', $name);
            $path = 'static/upload/'.$name;
            return "<a href='$path'>查看文件</a>";
        } else {
            return "文件不存在";
        }
    }
    

    问题3: 错误信息分析

    第三个截图显示的错误信息Call to a member function extensionO on null表明在调用extension()方法时,$file变量为null。这通常是因为文件没有被正确上传,或者hasFile方法没有正确检测到文件。确保您的表单设置正确,并且文件确实被上传。

    问题4: 表单设置

    第五个截图中的表单设置看起来是正确的,enctype属性设置为multipart/form-data,这是上传文件所必需的。同时,action属性正确指向了/zc路由。

    问题5: 文件目录和权限

    第四个截图显示了文件目录结构,确保images/static/upload目录存在,并且您的应用有权限写入该目录。如果目录不存在,您需要手动创建它。

    参考资料

    通过以上分析和修正,您应该能够解决文件上传的错误,并实现上传文件后通过点击链接查看图片的功能。如果还有其他问题,请继续提问。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月5日