首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用ftp_get()下载到硬盘驱动器

问无法使用ftp_get()下载到硬盘驱动器
EN

Stack Overflow用户
提问于 2011-09-24 15:44:50
回答 1查看 1.9K关注 0票数 1

是否可以使用PHP的到达下载到我的硬盘驱动器(如我的远程服务器所示)?使用ftp_get()下载是成功的,但是,我从远程服务器下载的文件将被下载到我的php脚本的目录中。我对任何方法都不感到惊讶,但我想知道如何将下载目录更改为硬盘上的特定位置,例如"C:\“驱动器。

下面的代码来自php.net,但这正是我的代码的设置方式:

代码语言:javascript
复制
<?php

// define some variables
$local_file = 'local.rar';
$server_file = 'server.rar';

// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
    echo "Successfully written to $local_file\n";
} else {
    echo "There was a problem\n";
}

// close the connection
ftp_close($conn_id);

?>

谢谢你的帮助,

埃文

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-24 15:49:05

要在本地下载文件,PHP脚本需要发送适当的头,然后回显文件的内容。但是,只有在尚未从PHP脚本(通过echo或其他方式)引发任何其他输出的情况下,才会发生这种情况。此代码应导致浏览器打开文件保存窗口或将其下载到默认位置。

代码语言:javascript
复制
// try to download $server_file and save to $local_file
if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {

    // Don't echo output here...
    //echo "Successfully written to $local_file\n";

    // You've downloaded the file into `$local_file` on your server. 
    // Now send it to the browser:
    header("Content-type: application/x-rar-compressed");

    // Also helps to send Content-length
    header("Content-length: " . filesize($local_file));

    // Dump out the file contents
    echo file_get_contents($local_file);

    // Delete it from the server
    unlink($local_file);

    // Always exit when you're done
    exit();
} else {
    echo "There was a problem\n";
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7540031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档