【发布时间】: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() 并且应该可以正常工作,到目前为止唯一已知的问题是上传文件并获取它的路径。