首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

用WIN32 INTERNET API实现ftp上传文件报错,该怎么处理

2012-02-11 
用WIN32 INTERNET API实现ftp上传文件报错我用WIN32 INTERNET API实现ftp上传文件,提示可以连接服务器,但

用WIN32 INTERNET API实现ftp上传文件报错
我用WIN32 INTERNET API实现ftp上传文件,提示可以连接服务器,但无法上传文件,用cuteftp等软件,或者用idftp组件在同一机器上上传都没有问题,这是怎么回事?代码如下:

var 
  RemoteFile: String ; 
  LocalFile: String ; 
  sFile: String ; 
  FTPPath: String ; 
  i: integer ; 
  blnReturn: boolean ; 
  dwInternetFlags: DWORD ; 
begin 
  if (hConnect <> nil) then 
  begin 
  FTPPath := GetFTPDirectory(hConnect) ; 
  SFILE(要上传的文件名) 
  LocalFile := localDir + sFile ; 
  RemoteFile := FTPPath + sFile ; 
  StatusBar1.Panels[0].Text := 'Uploading' ; 
  blnReturn := FtpPutFile(hConnect, 
  pchar(LocalFile), 
  pchar(RemoteFile), 
  dwInternetFlags, 
  $0) ; 
  end ; 
  end ; 
end; 

单步执行,到FtpPutFile这一步返回值是false,难道上传有时间限制?不能超时?哪里可以修改这个参数?

[解决办法]
帮顶

[解决办法]

Delphi(Pascal) code
function PutFTPFile(const PutFile, Host, UserName, Password, Dir, RemoteFile:  PChar;  Port: Word;): Boolean;var  H, FTP: HINTERNET;  H1: Hwnd;begin  Result := False;  H := InternetOpen(nil, INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);  if H = nil then Exit;  try    FTP := InternetConnect(H, Host, Port, UserName, Password,      INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);    if FTP = nil then Exit;    try      if (Dir = nil) or FtpSetCurrentDirectory(FTP, Dir) then      begin        Result := FtpPutFile(FTP, RemoteFile, SaveFile, False, FILE_ATTRIBUTE_NORMAL, FTP_TRANSFER_TYPE_BINARY, 0);      end;    finally      InternetCloseHandle(FTP);    end;  finally    InternetCloseHandle(H);  end;end;刚刚写的,没测试
[解决办法]
FtpSetCurrentDirectory改成FtpGetCurrentDirectory

热点排行