如何使用PHP将链接(例如http://site.com/file.zip
)中的远程文件上传到FTP服务器?我想将“香草论坛软件”上传到服务器,我的移动数据载体收取高价,所以如果我可以上传文件而不必从我的手机上传它,我可以省钱并完成工作。< / p>
答案 0 :(得分:4)
让你成为这个职能:
function downloadfile($file, $path) {
if(isset($file) && isset($path)) {
$fc = implode('', file($file));
$fp = explode('/', $file);
$fn = $fp[count($fp) - 1];
if(file_exists($path . $fn)) {
$Files = fopen($path . $fn, 'w');
} else {
$Files = fopen($path . $fn, 'x+');
}
$Writes = fwrite($Files, $fc);
if ($Writes != 0){
echo 'Saved at ' . $path . $fn . '.';
fclose($Files);
}
else{
echo 'Error.';
}
}
}
你可以这样使用它:
downloadfile("http://www.webforless.dk/logo.png","folder/");
希望它运作良好,记得Chmod目标文件夹777。 ((如果你需要它上传到另一个FTP服务器,你可以使用其他评论中发布的一个FTP脚本))
祝你好运。纳斯
答案 1 :(得分:1)
像这样的东西
$con=ftp_connect("ftp.yourdomain.com");
$login_result = ftp_login($con, "username", "password");
// check connection
if ($conn_id && $login_result) {
// Upload
$upload = ftp_put($con, 'public_html/'.$name, "LOCAL PATH", FTP_BINARY);
if ($upload) {
// UPLOAD SUCCESS
}
}
答案 2 :(得分:1)
A)通过网址下载文件:
$destination = fopen("tmp/myfile.ext","w");
//Myfile.ext is an example you should probably define the filename with the url.
$source = fopen($url,"r");
while (!feof($source)) {
fwrite($destination,fread($source, 8192));
}
fclose($source);
fclose($destination);
B)在FTP上传文件:
$file = 'tmp/myfile.ext';
$fp = fopen($file, 'r');
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
echo "UPLOAD OK";
} else {
echo "ERROR";
}
ftp_close($conn_id);
fclose($fp);
这只是一个简单的例子,在这段代码上可能会有很多改进,但主要的想法就在这里。
注意:如果您有专用服务器,通过调用wget下载文件可能更快更容易。
有关FTP的更多信息,请访问in the doc
答案 3 :(得分:1)
简单地:
copy('ftp://user:pass@from.com/file.txt', 'ftp://user:pass@dest.com/file.txt');
PHP服务器将同时消耗带宽上传和下载。
答案 4 :(得分:0)
在目标服务器上的Web可访问文件夹中创建一个php脚本,更改$ remotefile和$ localfile的值,将浏览器指向脚本URL并将文件拉出。
<?php
$remotefile="http://sourceserver.com/myarchive.zip";
$localfile="imported_archive.zip";
if(!copy($remotefile, $localfile)) {
echo("Transfer Failed: $remotefile to $localfile");
}
?>