【问题标题】:Download application/msword with cURL on localhost在 localhost 上使用 cURL 下载应用程序/msword
【发布时间】:2012-11-12 04:03:21
【问题描述】:

我在这里研究过:http://php.net/manual/en/function.curl-setopt.php 并启用了 cURL,验证它工作正常。

在 localhost 上使用 cURL 执行文件下载(应用程序/msword)的最佳方式是什么(在迁移到托管计划之前)?

这里有一个类似的问题:Download file Curl with url var

文件的路径称为 $path,但是,URL 是动态的,并使用文件的 ID 填充。

路径填充如下:

$path = "./uploads/{$_SESSION['email']}/"; 

$path = $path . basename( $_FILES['userfile']['name']);

下面是下载链接本身:

<a href='ppage.php?id={$row['uid']}'>Download</a>

我目前有以下内容,但无法获得任何输出或错误消息:

                $fp = fopen ($path, 'w');
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_FILE, $fp);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                curl_exec($ch);
                curl_close($ch);
                fclose($fp);

该文件是一个 .doc,我可以从其位置手动打开它。 dir、subdir 和文件本身的权限暂时为 777。如果您能指出正确的方向,我将不胜感激。提前致谢。

【问题讨论】:

  • 你遇到了什么麻烦?如果不知道 $path 中的内容,很难为您提供帮助。另外,你在哪里设置你的网址?最后,您不是在下载文本文件。 Word 文档!== 文本。
  • 我想看看我是否在某处遗漏了 curl_setopt() 以获得某种结果。目前 cURL 不会抱怨任何不正确的东西,文件也不会下载。

标签: php curl download localhost


【解决方案1】:

如果这是您的全部代码,那么您缺少设置下载 URL 的部分:

curl_setopt($ch, CURLOPT_URL, 'http://www.something.com/somefile.doc');

【讨论】:

  • 谢谢,但我的 URL 会更像这样:localhost/download.php?id=13456 URL 是动态的,取决于用户想要下载的文件。
  • @V1GG3N,那么请插入正确的 URL!另外,你为什么要从自己下载?为什么不直接加载文件?
  • 插入正确的 URL 没有任何作用!我有 curl_setopt($ch, CURLOPT_URL, 'localhost/path/to/my/downloadpage.php?id=261');这是特定测试文件的 URL。我什至无法收到错误消息。直接加载是什么意思?
  • 尝试以http://开头的正确URL,在)之前去掉多余的分号,启用错误报告error_reporting(E_ALL)。通过直接加载,我的意思是从你到目前为止所说的,根本没有理由使用 cURL。如果你从 localhost 加载东西,为什么要通过 HTTP 呢?您是否尝试捕获脚本的输出?
  • 错误报告已打开,由于某种原因,我上面的评论搞砸了,我有一个以 http:// 开头的正确 URL,并且没有额外的分号。我正在尝试使用 cURL 作为流氓标头问题的解决方法,同时尝试使用普通的 http 标头和输出缓冲进行下载。在转向托管计划之前,我正在使用这种方法进行测试。
猜你喜欢
  • 2017-03-31
  • 1970-01-01
  • 2022-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 2012-05-27
相关资源
最近更新 更多