ftp文件下载完整代码

 1 <?php
 2 function logFtpDownload($filename){
 3     $phpftp_host = "host"; //服务器地址
 4     $phpftp_port = port; //服务器的端口号
 5     $phpftp_user = "username";       // 用户名
 6     $phpftp_passwd = "password; //口令
 7     $ftp_path = dirname($filename) . "/"; //获取路经
 8     $select_file = basename($filename); //获取文件名
 9     $ftp = ftp_connect($phpftp_host,$phpftp_port); //连接FTP服务器
10     if($ftp){
11         if(ftp_login($ftp, $phpftp_user, $phpftp_passwd)){ //登陆
12             if(@ftp_chdir($ftp,$ftp_path)){  //进入指定路径
13                 $tmpfile = tempnam( getcwd()."/", "temp" ); //建唯一的临时文件 此目录要有读的权限,或者更高
14                 if(ftp_get($ftp, $tmpfile, $select_file, FTP_BINARY)) { //下载指定的文件到临时文件
15                     ftp_quit( $ftp );  // 关闭连接
16                     header("Content-Type:application/octet-stream");
17                     header("Content-Disposition: attachment; filename=" . $select_file);
18                     readfile($tmpfile);
19                     unlink($tmpfile); // 删除临时文件
20                     return true;
21                 }else{
22                     return false;
23                 }
24             }else{
25                 return false;
26             }
27         }else{
28             return false;
29         }
30     }
31 }

这是上传函数,先准备好!貌似我也是从哪位大神那找来的。。不记得了,不好意思!

1 <?php
2 $path=$_GET[‘timePath‘].‘/‘.$_GET[‘companyId‘].‘/‘.$_GET[‘timePath‘].‘-‘.$_GET[‘shopId‘].‘.txt‘;
3 $downResult=logFtpDownload($path);

拼接路径字符串,调用函数,并传入路径字符串!

到这里,基本上已经完成了!不过这是理想状态,就是页面没任何输出,路径$path是写死的,因为header();之前不能有任何输出。

这种情况一般都是用JS来解决,前台页面用ajax异步提交到后台查询相关、处理数据,如果文件路径是相对单一的,甚至可以组合好路径$path,我的由于条件太多,文件路径也不相同,所以只能把数据处理好,回传给前台,ajax判断回传,如果成功,就用window.open();打开一个新窗口,并把相关参数传给后台对应控制器,当然,最好openWindow=window.open();把它赋值,好用来关闭,然后给一个intervalId=window.setInterval("函数名",1000);这个就是打开新窗口后1秒开始执行 "函数名"这个函数,这个函数就是用来显示后台抛出的异常,比如文件不存在,ftp登录、连接失败等等。。

大概就是这样了,我就是个小菜鸟,写这个就是给自己整理下思路,加深下印象!还望各位神前来指导。。

时间: 2024-10-11 08:15:05

ftp文件下载完整代码的相关文章

Java中实现FTP上传下载文件的功能,完整代码

一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法.下载文件的通用方法以及删除文件.在ftp服务器上穿件文件夹.检测文件夹是否存在等,里面的有些代码对编写JAVA文件上传或许有参考价值,Java FTP主文件代码: package ftpDemo;         import java.io.DataOutputStream;         import java.io.InputStream;         import java.io.Out

java/struts/Servlet文件下载与ftp文件下载

1.前端代码 使用超链接到Struts的Action或Servlet <a target="_blank" href="ftpFileAction!downloadFile.action?transUrl=ftp://10.0.2.1/tazi/a.xml">请点击下载</a> 2.后台代码 Action或Servlet String s1=transUrl; // transUrl是前台接受的参数 s1=s1.substring(6); s

Gradle之FTP文件下载

Gradle之FTP文件下载 1.背景 项目上需要使用本地web,所以我们直接将web直接放入assets资源文件夹下.但是随着开发进行web包越来越大:所以我们想着从版本库里面去掉web将其忽略掉,使用gradle命令下载web.由于web包是放在局域网服务器上的,服务器支持FTP文件协议,所以使用FTP插件下载文件. 2.FTP FTP官网文档 Gradle官网文档 gradle配置 3.FTP工具 ftp-util.gradle configurations { ftpAntTask }

JavaScript与html5写的贪吃蛇完整代码

JavaScript与html5写的贪吃蛇完整代码 查看运行效果可访问http://www.codesocang.com/texiao/youxitexiao/2014/0402/7045.html# <!doctype html><html lang="en"><head><meta charset="utf-8"><title>js网页版的贪吃蛇游戏</title><style typ

CUDA 矩阵相乘完整代码

#include "cuda_runtime.h"#include "device_launch_parameters.h" #include <stdio.h>#include <stdlib.h>#include <time.h>#include "cublas_v2.h" #define BLOCK_SIZE 16 cudaError_t multiCuda(float *c, float *a, flo

【搜索引擎Jediael开发4】V0.01完整代码

截止目前,已完成如下功能: 1.指定某个地址,下载其页面中包含的所有链接指向的网页 主要有以下类: 1.主类MyCrawler 2.网页下载类PageDownloader 3.网页内容分类类HtmlParserTool 4.接口Filter 完整代码可见归档代码 Jediael_v0.01 或者 https://code.csdn.net/jediael_lu/daopattern/tree/d196da609baa59ef08176322ca61928fbfbdf813 或者 http://d

单点登录SSO:可一键运行的完整代码

h1.title,h2.title { padding-left: 2rem !important; color: rgb(71, 91, 204) !important } h1.title { font-size: 22px !important } h2.title { font-size: 18px !important } .padding { padding: 0 2rem; padding-bottom: 1rem } blockquote.menu { padding-left:

c#实现ftp上传代码

c#实现ftp上传代码 (2010-04-06 19:26:50) 转载▼ 标签: it   using System.Net; using System.IO; //调用以下函数 private FtpStatusCode UploadFun(string fileName, string uploadUrl) { Stream requestStream = null; FileStream fileStream = null; FtpWebResponse uploadResponse =

python实现邮件发送完整代码(带附件发送方式)

实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ = 'Administrator'#coding=gb2312 from email.Header import Headerfrom email.MIMEText import MIMETextfrom email.MIMEMultipart import MIMEMultipartimport smtplib, datetime def SendMailAttach(): msg = MIMEMultip