我用TNMFTP写的上传文件的代码,怎么不能用呀,高手帮我看看,我的分不多了。(100分)

  • 主题发起人 主题发起人 zlyanyan
  • 开始时间 开始时间
Z

zlyanyan

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm1.Button5Click(Sender: TObject);
var
LocalFile,
RemoteFile: String;
F: File of Byte;
FSize: Integer;
O: TOpenDialog;
begin
O := TOpenDialog.Create(Self);
try
O.Title := '选择要上传的文件';
if O.Execute then
if InputQuery('为上传的文件在服务器上命名', '请输入上传到的(文件夹及)文件名?', RemoteFile) then
begin
LocalFile := O.FileName;
case RadioGroup1.ItemIndex of
0: NMFTP1.Mode(MODE_ASCII);
1: NMFTP1.Mode(MODE_IMAGE);
2: NMFTP1.Mode(MODE_BYTE);
end;
AssignFile(F, LocalFile);
Reset(F);
FSize := FileSize(F);
CloseFile(F);
NMFTP1.Allocate(FSize);
NMFTP1.Upload(LocalFile, RemoteFile);
end;
finally
O.Free;
end;
end;
 
用IdFTP吧,只要几句话
procedure TForm1.Button1Click(Sender: TObject);
begin
IdFTP1.Host:='xxx';
IdFTP1.Password:='xxx';
IdFTp1.User:='XXX';
IdFTP1.Connect;
IdFTP1.Put('a.bmp', 'a.bmp');
end;
 
没有NMFTP1.connect??
 
别的 地方我已经设置完了,下载是可以的,就是上传出错。
 
AssignFile(F, LocalFile);
Reset(F);
FSize := FileSize(F);
CloseFile(F);
NMFTP1.Allocate(FSize);
这几句话应该没用的,不要再试
 
看一下FTP server 有没有写权限先。
 
不是 AssignFile(F, LocalFile);
Reset(F);
FSize := FileSize(F);
CloseFile(F);
NMFTP1.Allocate(FSize);
的错误。
 
多人接受答案了。
 
后退
顶部