【发布时间】:2023-03-05 19:53:01
【问题描述】:
我正在使用两种不同的 API,试图将文档从一种服务传输到另一种服务。到目前为止,该 API 使用起来有点笨拙,但我正在让它工作,直到现在还存在文档问题。这是我必须做的:
1. 我需要从一项服务(我已经完成)中获取文档的 url。
2. 将它下载到我自己的服务器到一个名为 filesToUpload 的文件夹(我已经创建)。
3. 将其转移到其他服务(我已经使用服务器上已有的文档完成了此操作。)
如您所见,问题不在于将其转移到其他服务,真正的问题是将其下载到我自己的服务器。这是我尝试过的:($doc['url'] 是来自一台服务器的响应,我已经确认提供的 url 是一个存在的文档)
$fileToPost = str_replace(" ", "+", $doc["url"]);
$fileName = strchr($fileToPost, "-");
$fileName = substr($fileName, 1);
file_put_contents("/api/ricochet-clean/filesToUpload/$fileName", fopen($fileToPost, 'r'));
这是我的错误信息:
file_put_contents(/api/ricochet-clean/filesToUpload/uploaded-leads.s3.amazonaws.com/219-2018-06-10-10-19-04-Assign6.docx): failed to open stream: No such file or directory in <b>/Applications/XAMPP/xamppfiles/htdocs/SoftwareAPIs/api/ricochet-clean/index.php</b> on line <b>191</b><br />
在file_put_contents()函数调用中,我试过/api/ricochet-clean/filesToUpload/$fileName绝对路径,也试过filesToUpload/$fileName的相对路径。
我看到了这个问题:file_put_contents: Failed to open stream, no such file or directory
对此的答案是开发人员没有创建他试图将文件下载到的目录,这不是我的问题,因为我已经确认我创建了该目录并且两个地方的拼写相同。
我在这里错过了什么?
【问题讨论】:
-
目录/文件的路径可能有误。试试这样:
file_put_contents("./api/ricochet-clean/filesToUpload/$fileName", fopen($fileToPost, 'r'));或者你可以使用绝对路径而不是相对路径。 -
@LovepreetSingh 我遇到了同样的错误
-
您确定该文件存在
$filename吗? -
@LovepreetSingh 就是这样......我正在该行中创建文件。不,该文件尚不存在,但如果它不存在,它应该自动创建它。至少这是 php 文档在这里所说的:php.net/manual/en/function.file-put-contents.php
-
那应该是你给的路径的问题。