如何下载和保存一个大文件(可能使用Zend?)


How to download and save a large file (possibly using Zend?)

我在url http://domain.com/somefile.mxt上有一个500MB的大文件。因为它是一个大文件,我不确定哪个PHP命令更适合于此。那之后我怎么保存它呢?

注。文件扩展名可以是任何东西,不只是.mxt

我也在使用Zend框架,所以如果有什么更具体的Zend,这将是有帮助的

将其下载到脚本运行的目录中(必须具有写权限):

exec('wget http://domain.com/somefile.mxt');

将它导入到PHP脚本中的变量中(不需要写权限):

$content=file_get_contents('http://domain.com/somefile.mxt');

使用上面的代码,您可以解析文件并将输出放到本地文件中:

file_put_contents('somefile.mxt',$content);

要将文件写入磁盘,您需要在您要将其放入的目录中获得写权限。

我没有使用它,但如果您使用setRawData(),似乎Zend HTTP可以处理此问题。

参见Zend HTTP数据流,这里是示例代码:

$client->setStream(); // will use temp file
$response = $client->request('GET');
// copy file
copy($response->getStreamName(), "my/downloads/file");
// use stream
$fp = fopen("my/downloads/file2", "w");
stream_copy_to_stream($response->getStream(), $fp);
// Also can write to known file
$client->setStream("my/downloads/myfile")->request('GET');