繁体   English   中英

PHP-从链接下载pdf文件并保存在本地文件夹中

[英]PHP - download pdf file from link and save in local file folder

我正在尝试获取API,实时开放访问pdf文件,然后将该文件下载到我的服务器。 但是,PDF文件的扩展名不是以“ .pdf”结尾,而是封装在一个更复杂的URL中: http : //aip.scitation.org/doi/pdf/10.1063/1.4996175 Web浏览器只会要求打开或保存它作为PDF文件,而我的脚本无法将其翻译为PDF文件。 如何使我的PHP脚本将该URL识别为PDF文件? 提前致谢。 奥利维尔

您可以这样:

<a href="http://aip.scitation.org/doi/pdf/10.1063/1.4996175" download="sample.pdf" id="pdf_file">Download PDF</a>

如果要执行自动下载而不在页面上显示锚标记,则可以设置JavaScript或Jquery代码。 为此,设置display:none; 到锚标记,然后您可以使用jquery触发click事件,如下所示:

$(document).ready(function(){
    $('#pdf_file').trigger('click');
};)

因此,它将在页面加载时开始下载文件。

如果您想获取文件并将其存储在服务器上,则可以使用以下方法:

file_put_contents("sample.pdf",file_get_contents("URL"));

您可以使用绝对路径代替文件名,而将文件存储在服务器的定义文件夹中。

目前尚不清楚您到底在做什么,以及为什么您的PHP脚本必须识别pdf。

如果您是通过php应用程序加载文件,则可以检查文件的内容类型标头,其中包含文件类型信息以及扩展名。 您可以使用http://php.net/manual/en/book.curl.php库。

如果您想让用户在您的网站上下载文件-您必须设置正确的内容类型,如下所示:

header('Content-Type: application/pdf');

现在,浏览器将知道您正在提供的文件是pdf,即使没有扩展名。

更新

最终证明,带有pdf文件的网站仅需要一些cookie,如下所述。

@Oleg Loginov,您是对的:只需在上下文中添加一个cookie,即可通过复制命令很好地上传PDF。

$context = stream_context_create(array(
  'http'=>array(
    'method'=>"GET",
    'header'=>"Accept-language: en\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:8.0) Gecko/20100101 Firefox/8.0\r\n" .
              "Cookie: foo=bar\r\n"
  )
));

非常感谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM