【问题标题】:Upload PDF Issue上传 PDF 问题
【发布时间】:2020-01-25 18:05:25
【问题描述】:

我正在构建一个基于 HelloSign API 的应用程序,为此我们需要将 PDF 上传到 HelloSign 以用作模板,但是我遇到的问题是我还需要在我们端存储 PDF 的副本,我已编写代码,但无法正常工作。我在 null 上收到对成员函数 store() 的错误调用

我已经在谷歌上搜索了这个以及如何编写这个,问题是我们已经用 pdf 设置了模板,但也想存储文件

public function store(Request $request)
    {
        $this->template->setClientId(config('hellosign.client_id'));
        $this->template->addFile($request->file('pdf'));

        // here we upload the raw pdf to the database

        $path = $request->file->store('pdf');
        // create the upload and store the url
        $fileData = new Upload;
        $fileData->user_id = 1;
        $fileData->name = $request->file->getClientOriginalName();
        $fileData->path = $path;
        $fileData->timestamps = now();
        $fileData->save();
        /**/

预期的结果是在上传文件时将文件上传到服务器,实际结果是在 $path = $request->file- 行上收到错误“Call to a member function store() on null” >存储('pdf');

这里是 $request->file('pdf') 的转储

#convertedFiles: array:1 [▼
    "pdf" => UploadedFile {#468 ▼
      -test: false
      -originalName: "User Setup From.pdf"
      -mimeType: "application/pdf"
      -error: 0
      #hashName: null
      path: "/tmp"
      filename: "phpmTqOhb"
      basename: "phpmTqOhb"
      pathname: "/tmp/phpmTqOhb"
      extension: ""
      realPath: "/tmp/phpmTqOhb"
      aTime: 2019-09-25 14:34:22
      mTime: 2019-09-25 14:34:22
      cTime: 2019-09-25 14:34:22
      inode: 398565
      size: 567747
      perms: 0100600
      owner: 1000
      group: 1000
      type: "file"
      writable: true
      readable: true
      executable: false
      file: true
      dir: false
      link: false
    }
  ]

【问题讨论】:

  • 您可能希望在您使用$request->file 的几个地方使用$request->file('pdf')
  • 就是这样 $path = $request->file->store('pdf');我意识到我在发布问题时犯了一个错字
  • HTML 中上传字段的名称是什么?是file吗?您是否正在验证输入以确保文件存在?
  • @Chandler 如果您直接复制/粘贴代码会很有帮助。你在$request->file->getClientOriginalName(); 遇到了同样的问题,谁知道还有哪些明显的问题实际上是拼写错误。
  • $request->file->getClientOriginalName();现在是 $request->file('pdf')->getClientOriginalName() 并且应该可以正常工作,到目前为止唯一已知的问题是上传文件并获取它的路径。

标签: php laravel upload


【解决方案1】:

该字段的名称似乎是pdf

你想要的

$path = $request->pdf->store('pdf');

【讨论】:

  • 太棒了,解决了它
  • NP。例如,您仍应向代码添加一些验证,以确保文件确实存在并且是正确的 mimetype。见laravel.com/docs/6.x/requests
猜你喜欢
  • 2011-08-04
  • 2015-08-22
  • 1970-01-01
  • 1970-01-01
  • 2014-11-18
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多