文件路径空,Vue Js,Laravel,S3

Posted

技术标签:

【中文标题】文件路径空,Vue Js,Laravel,S3【英文标题】:File path null, Vue Js, Laravel, S3 【发布时间】:2021-10-05 08:25:42 【问题描述】:

我尝试使用 Vuejs 和 Laravel 创建一个简单的文件上传。但我的“b2b_file”变量似乎为空。在 Vue 组件中我有:

<b-form-file
    v-model="b2b_file"
    name="b2b_file"
    multiple>
</b-form-file>

methods: 
    this.b2b_file.map(element => 
        this.productData.b2b_file.push(element)
    )

console.log(this.productData.b2b_file) 返回以下内容: https://prnt.sc/1hox1c5

由于当我尝试$request-&gt;file('b2b_file')-&gt;store() 时控制器中的路径为空,我收到消息:“在 null 上调用成员函数 store()”,异常:“错误”

我做错了什么?

【问题讨论】:

我认为你必须使用v-bind,像这样:name="b2b_file",你缺少':' 【参考方案1】:

经过一番激烈的搜索后,我发现我遗漏了一些逻辑,这就是我在控制器中得到 null 的原因。事实证明,在调用控制器之前,在 Vue 组件中我错过了这个:

  const formData = new FormData()
const file = this.productData.b2b_file
    formData.append('b2b_file', file)

axios.post('/api/auth/upload_file', formData)
      .then(response => 
        this.file_path = response.data
      )

在另一个 Axios 调用中,我发送了 this.file_path 的值 这样我就得到了文件的路径,$request-&gt;file('b2b_file')-&gt;store() 可以正常工作

【讨论】:

以上是关于文件路径空,Vue Js,Laravel,S3的主要内容,如果未能解决你的问题,请参考以下文章

Spark saveAsTextFile写入空文件 - _ $ folder $到S3

无法在 laravel 中使用 vue.js 显示存储目录中的图像

如何使用节点 js 检查“s3”/“azure”路径中是不是存在文件

如何将 laravel vue 站点部署到共享主机

Laravel api在邮递员中返回值,但在Vue js中返回空数组

Laravel 5:使用Vue安装自定义组件,错误为“不在npm注册表中。”