我正在从URL获取并下载.pdf。它通过Curl请求直接下载到我的PC上。 如何将其保存在运行页面的服务器上的目录中?
我能够使用PHP和JS,我已经尝试了很多方法,甚至结合了两种语言,但似乎只能满足curl请求,并且不会将其保存在目录中
<body>
<button id="boton">CLICK ME</button>
<?php
$name = 'file';
$file_downloaded = curl_init();
curl_setopt($file_downloaded, CURLOPT_URL, 'The url');
//curl_setopt($file_downloaded, CURLOPT_HEADER, true);
curl_setopt($file_downloaded, CURLOPT_RETURNTRANSFER, true);
curl_setopt($file_downloaded, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($file_downloaded, CURLOPT_AUTOREFERER, true);
$file_downloaded = curl_exec($file_downloaded);
if(!curl_errno($file_downloaded))
{
header('Content-type:application/pdf');
header('Content-Disposition: attachment; filename ="'.$nuevo_nombre.'.pdf"');
echo($file_downloaded);
exit();
}else
{
echo(curl_error($file_downloaded));
}
?>
<script>
$("#boton").click(function () {
var archivo = '<?php echo($file_downlaoded) ?>';
var data = new FormData();
data.append("data" , archivo);
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
xhr.open( 'post', '/my/directory', true );
xhr.send(data);
});
</script>
</body>
它正在我的本地PC上下载,并且有望在服务器的/ my /目录路径上下载。
<?php
$nuevo_nombre = 'remito'; //asignamos nuevo nombre
$archivo_descarga = curl_init(); //inicializamos el curl
curl_setopt($archivo_descarga, CURLOPT_URL, 'URL');
//curl_setopt($archivo_descarga, CURLOPT_HEADER, true);
curl_setopt($archivo_descarga, CURLOPT_RETURNTRANSFER, true);
curl_setopt($archivo_descarga, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($archivo_descarga, CURLOPT_AUTOREFERER, true);
$resultado_descarga = curl_exec($archivo_descarga);
file_put_contents('/path/to/file.pdf', $resultado_descarga);
?>
答案 0 :(得分:0)
通过file_put_contents()函数解决了该问题,并且目录文件夹的权限也有问题。
function Download($endpoint) {
$URL = 'URL';
$fileName= 'name1';
$path = 'testDirectory/'.$filename.'.pdf';
$file_download= curl_init();
curl_setopt($file__download, CURLOPT_URL, $URL.$endpoint);
curl_setopt($file__download, CURLOPT_RETURNTRANSFER, true);
curl_setopt($file__download, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($file__download, CURLOPT_AUTOREFERER, true);
$result= curl_exec($file__download);
file_put_contents($path, $result);
}