[英]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.