在页面加载时自动将PHP副本文件复制到本地目录

时间:2012-05-31 18:12:12

标签: php

基本上,当某个页面加载时,我希望能够自动将文件从服务器复制到我的计算机上的本地目录。这就是我得到的:

<body>
<?php
copy('http://photobooth.josh.com/gsbackgrounds/0001/greenscreen_background.jpg', 'C:\Program Files (x86)\BreezeSys\DSLR Remote Pro\PhotoboothImages\greenscreen_background.jpg');
?>
</body>

但它似乎不起作用。如果我需要点击那也可以,但我被卡住了。服务器有PHP5所以我认为这会有效吗?

3 个答案:

答案 0 :(得分:1)

这样做的简单方法是:

// A simple method requiring allow_url_fopen
$file_contents = file_get_contents($resource_url);

// An alternative method requiring cURL
$ch = curl_init($resource_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$file_contents = curl_exec($ch);

file_put_contents($local_file_path, $file_contents);

我猜测copy()映射到系统调用,而系统调用不支持远程项目。修改allow_url_fopen标志可能会让它起作用,但我对此表示怀疑。

答案 1 :(得分:0)

你可以做fopen。

   $contents = file_get_contents('http://****.com/file.jpg');
   $handle =  fopen('yourfilename.jpg',"w");
   fwrite($handle,$contents);
   fclose($handle);  

或尝试使用curl进行下载。

http://phpsense.com/2007/php-curl-functions/

/**
 * Initialize the cURL session
 */
 $ch = curl_init();

 /**
 * Set the URL of the page or file to download.
 */
 curl_setopt($ch, CURLOPT_URL, ‘http://news.google.com/news?hl=en&topic=t& output=rss’);

 /**
 * Ask cURL to return the contents in a variable instead of simply echoing them to  the browser.
 */
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

 /**
 * Execute the cURL session
 */
 $contents = curl_exec ($ch);

 /**
 * Close cURL session
 */
 curl_close ($ch);

答案 2 :(得分:0)

首先,感谢所有试图解决我的困境的人,并对延迟回复感到抱歉。

我发现最简单的方法是简单地制作一个javascript函数“Copy”,然后在本地机器上运行一个批处理文件/类似wget的程序。它需要Internet Explorer,但这就是我们正在使用的。

无论如何,我只是为那些可能遇到同样问题的其他人发布我们的解决方案。再次感谢!