-1

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

<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,所以我认为这会起作用吗?

4

3 回答 3

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标志可能会允许它工作,但我对此表示怀疑。

于 2012-05-31T18:53:28.090 回答
0

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

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

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

于 2012-06-01T02:51:17.033 回答
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);
于 2012-05-31T18:58:08.120 回答