当前位置:首页 » 文件传输 » ftp对比api
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

ftp对比api

发布时间: 2022-11-18 12:01:44

A. FTP api编程

建议楼主看下MSDN,楼主既然会用ASM,应该看得懂
HINTERNET InternetConnect(
__in HINTERNET hInternet,
__in LPCTSTR lpszServerName,
__in INTERNET_PORT nServerPort,
__in LPCTSTR lpszUsername,
__in LPCTSTR lpszPassword,
__in DWORD dwService,
__in DWORD dwFlags,
__in DWORD_PTR dwContext
);

B. 怎么得到ftp目录上的文件数目 api

你好,添加以下ftpClient.enterLocalPassiveMode(); 就可以了哦,希望对你有帮助!

C. 图片通过api上传了,能访问到,FTP进去找不到是怎么回事

可能原因与解决办法:

  1. 检查上传的问题是否已放到正确的目录底下;

  2. 上传的文件有病毒,被防火墙隔离。 解决方案:请查杀完病毒后上传;

  3. 上传软件问题。解决方案:换用其它上传方式,确定是否软件的问题,如是建议更换上传软件;

  4. 程序问题。 解决方案:请检查并更正程序。


FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。

D. 什么是“FTP”什么是“流媒体”

FTP(File Transfer Protocal),是文件传输协议的简称。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。
上面抄的。。
其实就是一个端口。提供别人进入浏览下载文件的
所谓流媒体是指采用流式传输的方式在Internet播放的媒体格式。 流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上。用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。

这个我专业性的。我也答不好

E. 网络存储服务器的NAS与FTP的区别

NAS的网络文件系统与本地文件系统唯一区别是,本地文件系统通过API程序在内部总线上完成读写要求,而网络文件系统将内部总线延伸成了网络,对于上层应用,两者没有什么区别。一旦用户挂载了网络文件系统目录到本地,就可以像使用本地文件系统一样使用网络文件系统。

F. 电脑的API是什么,是不是就是端口

API不是端口,API是面向程序设计人员的编程接口。API的本质是某个软件或系统提供给编程人员的一些预定义好的函数。有了这些函数,编程人员通过函数的使用规范来使用它们就可以实现这个程序的相应功能,这样,程序员只需要专注于自己程序的开发即可,而不需要关注提供API的这个程序内部究竟是如何实现功能的。因此,API相当于一个黑箱,只留一个外部操作接口给编程人员,而无需关注内部具体的实现细节。
端口是计算机内部的程序用来连接网络的出口,是一个虚拟概念。计算机内的每个程序向外连接网络都要通过特定的端口,这样很容易将数据包归类整理而避免无法区分产生混乱。外网和计算机上的某个程序通信时,只需要知道该程序所用的端口号,通过这个端口收发信息即可,而不需要知道具体是哪个程序,它有什么样的属性。每个端口都有其特定作用,有些端口号是固定的,如80端口提供HTTP服务让你可以浏览网页,23端口提供远程登录和控制功能,53号端口提供DNS解析服务,让你通过输入网址就可以访问某个网址而不必输入该网站的IP地址。
在计算机的命令提示符(CMD)中输入netstat -ano,可以查看当前所有被占用的端口的工作情况。在IP地址的冒号后面的部分就是端口号。
修改端口是比较复杂的工作,要区分系统端口、应用端口和保留端口。有些可以修改,有些不能修改,而修改的方法也随不同的程序而异。

G. 请问在vbs中如何定义ftp的api

在VBS中调用WINDOWS的FTP函数较困难,除非你能将API函数封装成ACTIVEX DLL.下面是网上找到的函数:
***********************************************
FTP 函 数 描 述

InternetOpen 初始化 Win32 internet

InternetConnect 打开一个FTP, HTTP, or Gopher 应用会话

FtpCreateDirectory 在服务器上建立一个新的目录

FtpRemoveDirectory 删除服务器上的一个目录

FtpSetCurrentDirectory 设置服务器上当前的工作目录

FtpGetCurrentDirectory 返回服务器当前的工作目录

FtpOpenFile 打开服务器上的一个文件进行读写

FtpGetFile 接收指定的文件并且在本地建立它

FtpPutFile 发送指定文件到服务器

FtpDeleteFile 删除服务器上一个指定的文件

FtpCommand 发送命令到服务器

FtpFindFirstFile 返回文件信息。放在 WIN32_FIND_DATA 结构中

InternetFindNextFile 调用 FtpFindFirstFile()后在目录中连续查找

FtpRenameFile 修改服务器上指定的文件的名字

主要是显示远端目录列表,上传、下载文件,

'########################################################################

'## ##

'## FTPAPI声明 ##

'## ##

'########################################################################

Public Const ERROR_NO_MORE_FILES = 18

Public Const ERROR_INTERNET_EXTENDED_ERROR = 12003

Public Const FTP_TRANSFER_TYPE_BINARY = &H2

Public Const FTP_TRANSFER_TYPE_ASCII = &H1

Public Const INTERNET_FLAG_PASSIVE = &H8000000

Public Const INTERNET_FLAG_RELOAD = &H80000000

Public Const INTERNET_FLAG_KEEP_CONNECTION = &H400000

Public Const INTERNET_FLAG_MULTIPART = &H200000

Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0

Public Const INTERNET_OPEN_TYPE_DIRECT = 1

Public Const INTERNET_OPEN_TYPE_PROXY = 3

Public Const INTERNET_INVALID_PORT_NUMBER = 0

Public Const INTERNET_SERVICE_FTP = 1

Public Const INTERNET_SERVICE_GOPHER = 2

Public Const INTERNET_SERVICE_HTTP = 3

Public Const MAX_PATH = 260

Public Const NO_ERROR = 0

Public Const FILE_ATTRIBUTE_READONLY = &H1

Public Const FILE_ATTRIBUTE_HIDDEN = &H2

Public Const FILE_ATTRIBUTE_SYSTEM = &H4

Public Const FILE_ATTRIBUTE_DIRECTORY = &H10

Public Const FILE_ATTRIBUTE_ARCHIVE = &H20

Public Const FILE_ATTRIBUTE_NORMAL = &H80

Public Const FILE_ATTRIBUTE_TEMPORARY = &H100

Public Const FILE_ATTRIBUTE_COMPRESSED = &H800

Public Const FILE_ATTRIBUTE_OFFLINE = &H1000

Public Const INTERNET_DEFAULT_FTP_PORT = 21

Public Const INTERNET_DEFAULT_GOPHER_PORT = 70

Public Const INTERNET_DEFAULT_HTTP_PORT = 80

Public Const INTERNET_DEFAULT_HTTPS_PORT = 443

Public Const INTERNET_DEFAULT_SOCKS_PORT = 1080

Public Type FILETIME

dwLowDateTime As Long

dwHighDateTime As Long

End Type

Public Type WIN32_FIND_DATA

dwFileAttributes As Long

ftCreationTime As FILETIME

ftLastAccessTime As FILETIME

ftLastWriteTime As FILETIME

nFileSizeHigh As Long

nFileSizeLow As Long

dwReserved0 As Long

dwReserved1 As Long

cFileName As String * MAX_PATH

cAlternate As String * 14

End Type

'连接FTP服务器的操作函数

'打开连接internet的会话

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _

(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _

ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

'sAgent--要调用internet对话的应用程序名

'lAccessType--请求的访问的类型,包括:

'INTERNET_OPEN_TYPE_PRECONFIG---预配置(缺省)

'INTERNET_OPEN_TYPE_DIRECT--直接指向internet

'INTERNET_OPEN_TYPE_PROXY--通过代理服务器连接

'sProxyName--如果lAccessType被设置为INTERNET_OPEN_TYPE_PROXY,该参数为

'代理服务器的名字

'sProxyBypass--包含一系列代理服务器地址的字符串

'lFlags--会话的选项,可包括下列值:

'INTERNET_FLAG_DONT_CACHE--不对数据进行本地缓冲或通过网关服务器缓冲

'INTERNET_FLAG_ASYNC--当操作完成时,将同INTERNET_STATUS_REQUEST_COMPLETE

'一起进行一个状态回调

'INTERNET_FLAG_OFFLINE--只通过永久缓冲进行下载操作

'打开一个根据连接类型的Internet连接

Public Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" _

(ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, _

ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, _

ByVal lFlags As Long, ByVal lContext As Long) As Long

'hInternetSession--函数InternetOpen()打开Internet对话返回的值

'sServerName--要连接的服务器的名称或IP

'nServerPort--该连接的Internet端口

'sUsername--登录的用户帐号

'sPassword--登录的口令

'lService--要连接的服务器类型(这里是连接FTP服务器,连接的类型为常数INTERNET_SERVICE_FTP)

'关闭Internet连接

Public Declare Function InternetCloseHandle Lib "wininet.dll" _

(ByVal hInet As Long) As Integer

'hInet--InternetConnect()函数返回的值

'文件查找操作

'在FTP连接中查找一个文件。在调用此函数后取得第一个文件后,可以接着调用FtpFindNextFile()

'获得下一个查到的FTP服务器上的文件。

Public Declare Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" _

(ByVal hFtpSession As Long, ByVal lpszSearchFile As String, _

lpFindFileData As WIN32_FIND_DATA, ByVal dwFlags As Long, ByVal dwContent As Long) As Long

'lpszSearchFile--指向要搜索的文件名。可以通配符*.*的形式。

'lpFindFileData--用于装载与找到的文件有关的具体信息

'dwFlags--数据传输的方式,通常设置为0,(ASCII方式)

'继续由FtpFindFirstFile()函数发起的文件搜索操作

Public Declare Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" _

(ByVal hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long

'hFind--FtpFindFirstFile()函数的返回值

'lpvFindData--用于装载与找到的文件有关的具体信息

'目录操作

'改变FTP服务器的当前目录。

Public Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" _

(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

'lpszDirectory--包含要到达的目录名。可以是相对的或绝对的路径。

'在ftp服务器上创建目录

Public Declare Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" _

(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

'lpszDirectory--包含要创建目录的字符串,可以是一个相对路径或绝对路径

'取得ftp当前的目录的名字

Public Declare Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" _

(ByVal hFtpSession As Long, lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Boolean

'lpszCurrentDirectory--存放目录名字的字符串

'lpdwCurrentDirectory--目录名字字符串的字节数

'删除ftp服务器的一个目录

Public Declare Function FtpRemoveDirectory Lib "wininet.dll" Alias "FtpRemoveDirectoryA" _

(ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

'lpszDirectory--要删除的目录名称,可以是相对路径或绝对路径

'文件操作

'从ftp服务器上取得一个文件并保存在本地机器上,此函数包括了与从一个FTP服务器中读取一个文件

'并在本地保存等操作有关的所有功能

Public Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" _

(ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, _

ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, _

ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean

'lpszRemoteFile--包含FTP服务器中要读的文件名

'lpszNewFile--在本地机器中要创建的文件名

'fFailIfExists--当为TRUE时,如果文件已经存在,则调用失败

'dwFlagsAndAttributes--文件的属性

'dwFlags--文件的传输方式可能包括下列值:

'FTP_TRANSFER_TYPE_ASCII--使用可以将控制和格式信息转换到本地对应文件的ASCII传输方式

'FTP_TRANSFER_TYPE_BINARY--使用把文件作为一个连续数据流传输的FTP图象传输方式,这种方式

'不区别在文件内部数据结构之间的任何分界(如行结束的回车标记)

'dwContext--要取回的文件的描述表标识符

H. 什么是WEB服务,FTP 服务,SMTP服务!

通俗的讲,Web服务器传送(serves)页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用(call)的方法(methods)。确切一点,你可以说:Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供(serves)商业逻辑(business logic)。

下面让我们来细细道来:

Web服务器(Web Server)
Web服务器可以解析(handles)HTTP协议。当Web服务器接收到一个HTTP请求(request),会返回一个HTTP响应(response),例如送回一个HTML页面。为了处理一个请求(request),Web服务器可以响应(response)一个静态页面或图片,进行页面跳转(redirect),或者把动态响应(dynamic response)的产生委托(delegate)给一些其它的程序例如CGI脚本,JSP(JavaServer Pages)脚本,servlets,ASP(Active Server Pages)脚本,服务器端(server-side)JavaScript,或者一些其它的服务器端(server-side)技术。无论它们(译者注:脚本)的目的如何,这些服务器端(server-side)的程序通常产生一个HTML的响应(response)来让浏览器可以浏览。

要知道,Web服务器的代理模型(delegation model)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序(译者注:服务器端脚本)。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transaction processing),数据库连接(database connectivity)和消息(messaging)等功能。

虽然Web服务器不支持事务处理或数据库连接池,但它可以配置(employ)各种策略(strategies)来实现容错性(fault tolerance)和可扩展性(scalability),例如负载平衡(load balancing),缓冲(caching)。集群特征(clustering—features)经常被误认为仅仅是应用程序服务器专有的特征。

应用程序服务器(The Application Server)
根据我们的定义,作为应用程序服务器,它通过各种协议,可以包括HTTP,把商业逻辑暴露给(expose)客户端应用程序。Web服务器主要是处理向浏览器发送HTML以供浏览,而应用程序服务器提供访问商业逻辑的途径以供客户端应用程序使用。应用程序使用此商业逻辑就象你调用对象的一个方法(或过程语言中的一个函数)一样。

应用程序服务器的客户端(包含有图形用户界面(GUI)的)可能会运行在一台PC、一个Web服务器或者甚至是其它的应用程序服务器上。在应用程序服务器与其客户端之间来回穿梭(traveling)的信息不仅仅局限于简单的显示标记。相反,这种信息就是程序逻辑(program logic)。 正是由于这种逻辑取得了(takes)数据和方法调用(calls)的形式而不是静态HTML,所以客户端才可以随心所欲的使用这种被暴露的商业逻辑。

在大多数情形下,应用程序服务器是通过组件(component)的应用程序接口(API)把商业逻辑暴露(expose)(给客户端应用程序)的,例如基于J2EE(Java 2 Platform, Enterprise Edition)应用程序服务器的EJB(Enterprise JavaBean)组件模型。此外,应用程序服务器可以管理自己的资源,例如看大门的工作(gate-keeping ties)包括安全(security),事务处理(transaction processing),资源池(resource pooling), 和消息(messaging)。就象Web服务器一样,应用程序服务器配置了多种可扩展(scalability)和容错(fault tolerance)技术。

什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写。该协议是Internet文件传送的基础,它由一系列规格说明文档组成,目标是提高文件的共享性,提供非直接使用远程计算机,使存储介质对用户透明和可靠高效地传送数据。简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP协议的任务是从一台计算机将文件传送到另一台计算机,它与这两台计算机所处的位置、联接的方式、甚至是是否使用相同的操作系统无关。假设两台计算机通过ftp协议对话,并且能访问Internet, 你可以用ftp命令来传输文件。每种操作系统使用上有某一些细微差别,但是每种协议基本的命令结构是相同的。
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。
1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理文件包含的大部分是文本,其中也包含有指示页尺寸,字库等信息的非打印字符)。在拷贝任何非文本文件之前,用binary 命令告诉ftp逐字拷贝,不要对这些文件进行处理,这也是下面要讲的二进制传输。
2.二进制传输模式:在二进制传输中,保存文件的位序,以便原始和拷贝的是逐位一一对应的。即使目的地机器上包含位序列的文件是没意义的。例如,macintosh以二进制方式传送可执行文件到Windows系统,在对方系统上,此文件不能执行。
如果你在ASCII方式下传输二进制文件,即使不需要也仍会转译。这会使传输稍微变慢 ,也会损坏数据,使文件变得不能用。(在大多数计算机上,ASCII方式一般假设每一字符的第一有效位无意义,因为ASCII字符组合不使用它。如果你传输二进制文件,所有的位都是重要的。)如果你知道这两台机器是同样的,则二进制方式对文本文件和数据文件都是有效的。
5. FTP的工作方式
FTP支持两种模式,一种方式叫做Standard (也就是 PORT方式,主动方式),一种是 Passive (也就是PASV,被动方式)。 Standard模式 FTP的客户端发送 PORT 命令到FTP服务器。Passive模式FTP的客户端发送 PASV命令到 FTP Server。
下面介绍一个这两种方式的工作原理:
Port模式FTP 客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。 PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。 FTP server必须和客户端建立一个新的连接用来传送数据。
Passive模式在建立控制通道的时候和Standard模式类似,但建立连接后发送的不是Port命令,而是Pasv命令。FTP服务器收到Pasv命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送,这个时候FTP server不再需要建立一个新的和客户端之间的连接。
很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

SMTP是SIMPLE MAIL TRANSFER PROTOCOL的缩写,一般的发信软件,如Outlook Express、FoxMail、Eudora都是使用这个协议进行发信的。如果你的ISP没有提供SMTP服务器,那你就无法使用该协议发送信件。无法从一个邮箱的域名知道它是否提供SMTP服务或者SMTP服务器是什么。如果不知道自己信箱的SMTP服务器,可以向提供信箱的ISP询问。现在为了避免滥发垃圾邮件,许多免费邮件的提供商都不提供SMTP服务器,如Hotmail、eyou,这些免费邮件用户只能登录后通过浏览器发信。收费邮件一般都提供POP3和SMTP服务器。

I. 电脑的API是什么,是不是就是端口

API并不是端口。


API是Application Programming Interface的缩写,指的是应用程序编程接口。API包含一系列已经定义好的函数。使用封装好的API函数可以轻松的访问硬件,获得成熟的程序架构,使用复杂的数学函数等等。可以提高程序的可移植性,降低开发复杂度,提高程序稳定性等等。几乎所有的程序都需要利用API,包括其他个人或组织编写的API库,或者是项目内部封装的API。


下图是微软公司提供的核心系统功能API说明(部分函数)。通过该文档,可以了解哪些接口可以被使用,用途,以及如何被使用。

J. 软件开发方面的问题:什么叫API方式跟Webservice有什么联系,什么又是数据视图提供方式、FTP方式。

api:应用程序开发接口。一般是提供一些库文件,然后调用。优点:效率高,集成度好;缺点:需要本地修改代码,依赖性比较大。
webservice:顾名思义是网站式服务,也就是说通过网址接入的方式访问服务,不需要本地调用api。优点:通过网络访问,与语言无关;需要网络支持,受网络及服务端性能限制。
视图:估计你的意思是通过远程访问数据库视图吧,这种就直接访问人家数据库了,需要的是数据库驱动和网络支持。优点:直接看到数据,便于处理;缺点:需要明白人家的数据结构和逻辑,不透明。
ftp:这种就比较牵强了,通过ftp交换文件,解析文件来传递数据信息。优点:传统的ftp协议很通用,便于部署维护;缺点:需要自己解析和处理文件格式。
以上是我大概写的,希望能帮助你。