2301_76826086 2024-06-05 10:46 采纳率: 70%
浏览 2
已结题

laravel文件上传出错

img

img

img

img

img


想实现一个上传文件后出现链接 查看用户上传文件的功能 怎么改错 卡了好久了

  • 写回答

1条回答 默认 最新

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

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


    根据您提供的图片内容,我将尝试帮助您解决在Laravel中实现文件上传功能时遇到的问题。

    1. 路由配置

    从您提供的第二张图片中,路由配置似乎有一些问题。正确的路由定义应该是这样的:

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

    注意,文件上传通常使用POST请求,而不是GET。同时,确保控制器方法名和路由参数匹配。

    2. 控制器逻辑

    从第三张图片中,控制器的文件上传逻辑存在一些问题。以下是可能的修正版本:

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

    请注意以下几点:

    • 使用$request->hasFile('photo')来检查是否有文件上传。
    • 使用$file->getClientOriginalExtension()来获取原始文件扩展名。
    • 确保move方法的第一个参数是目标文件夹的路径,第二个参数是新文件名。

    3. 文件路径和名称

    从第四张图片中,文件上传路径似乎没有问题。确保static/upload目录存在于您的项目中,并且Web服务器有权限写入该目录。

    4. 前端表单配置

    从第一张图片中,前端表单配置基本正确,但是input类型为text的密码字段应该使用password类型,并且enctype属性已经设置为multipart/form-data,这是正确的。

    5. 错误提示

    错误提示“Call to a member function extension() on null”表明在尝试调用extension()方法时,$file变量为null。这通常是因为文件没有被正确上传。请确保文件字段在表单中正确命名,并且用户确实选择了文件。

    参考资料

    请根据上述建议修改您的代码,并重新测试文件上传功能。如果问题仍然存在,请提供更详细的错误信息或代码,以便进一步诊断问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月9日
  • 创建了问题 6月5日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见