【问题标题】:php file_put_contents not creating file from urlphp file_put_contents 没有从 url 创建文件
【发布时间】: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
  • 那应该是你给的路径的问题。

标签: php rest


【解决方案1】:

你要写的文件是

/api/ricochet-clean/filesToUpload/$fileName

但是正在写入的文件是

/api/ricochet-clean/filesToUpload/uploaded-leads.s3.amazonaws.com/219-2018-06-10-10-19-04-Assign6.docx

假设目录uploaded-leads.s3.amazonaws.com不存在,你需要创建它,或者编写代码来创建它。

你在这里使用的引号绝对没问题。

【讨论】:

    【解决方案2】:

    你会这样尝试吗?

    file_put_contents("'/api/ricochet-clean/filesToUpload/$fileName'", fopen($fileToPost, 'r'));

    【讨论】:

    • 你做对了吗?我的意思是,在双引号内,使用单引号。
    • 这里不用多引号了。
    猜你喜欢
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2014-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    相关资源
    最近更新 更多