Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2011, 00:17   #1
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию FTP некорректная загрузка файлов

Здравствуйте!
Написал простенький FTP Uploader
Но он почему-но некорректно работает при загрузке файлов на внешние FTP (на локальный фтп грузит все корректно).

Вот процедура загрузки файлов на FTP:
Код:
procedure TForm1.SpeedButton1Click(Sender: TObject);
var ms:  TMemoryStream;
ftp: TIdFTP;
i:integer;
AltAdr:String;
begin
if s1.Cells[1,0]<>'' then
begin
  //Memo1.Text:='';
  ftp:=TIdFTP.Create(Application);
  ms:=TMemoryStream.Create;
  try
    try
      if Adr.Text='' then Adr.Text :='ftp.kubanip5.nichost.ru';
      if Port.Text='' then Port.Text:='21';
      ftp.Host:=Adr.Text;
      ftp.Port:=strtoint(Port.Text);
      ftp.Username:=Login.Text;
      ftp.Password:=Pass.Text;
      if ftp.Username='' then ftp.Username:='********';
      if ftp.Password='' then ftp.Password:='********';
      ftp.Connect;
      if DirFTP.Text='' then DirFTP.Text:='/';
      if DirFTP.Text[length(DirFTP.Text)]<>'/' then DirFTP.Text:=DirFTP.Text+'/';
      if DirFTP.Text[1]<>'/' then DirFTP.Text:='/'+DirFTP.Text;
      if CheckBox1.Checked=True then ftp.MakeDir(DirFTP.text);
      ftp.ChangeDir(DirFTP.text);
      for i:=0 to S1.RowCount-1 do
      begin
        ftp.Put(S1.Cells[0,i]+S1.Cells[1,i],S1.Cells[1,i],false);
        AltAdr:=Adr.Text;
        if AltAdr='ftp.kubanip5.nichost.ru' then AltAdr:='http://кубаньипотека.рф/download';
        Links.Lines.Add(AltAdr+DirFTP.text+S1.Cells[1,i]);
      end;
      ShowMessage('Отправлено');
    finally
      ms.Free; ftp.Free;
    end;
  except
    ShowMessage('Отправка не удалась');
  end;
end;

end;
Компилировал на Delphi XE.
Подскажите в чем может быть проблема?
Возможно дело в XE, может кто-нить скомпилировать проект на D7 и проверить работоспособность проги?
Других вариантов у меня пока нет.

Последний раз редактировалось ZBEP; 29.07.2011 в 12:18.
ZBEP вне форума Ответить с цитированием
Старый 29.07.2011, 02:23   #2
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Проблема решена.
теперь заливаю файлы так:
Код:
procedure TForm1.upload(filename:pchar; ftpfilename:pchar);
var Username,Password,AltAdr,Folder:String;
begin
  Folder:=DirFtp.Text;
  Username:=login.Text;
  Password:=pass.text;
  if Username='' then Username:='********';
  if Password='' then Password:='********';
  inet_open:= internetopen('iexplore',INTERNET_OPEN_TYPE_DIRECT,nil,nil,0);
  conn_param:=internetconnect(inet_open,PChar(adr.Text),strtoint(Port.Text),PChar(Username),PChar(Password),INTERNET_SERVICE_FTP,INTERNET_FLAG_PASSIVE,0);

  if not FtpSetCurrentDirectory(conn_param, PChar(Folder)) then
  begin
    if FtpCreateDirectory(conn_param, PChar(Folder)) then
    FtpSetCurrentDirectory(conn_param, PChar(Folder));
  end;

  if ftpputfile(conn_param,filename,ftpfilename,FTP_TRANSFER_TYPE_UNKNOWN,0)=false then
  ShowMessage('Ошибка. Загрузка не удалась!');
  internetclosehandle(conn_param);
  internetclosehandle(inet_open) ;
END;

Последний раз редактировалось ZBEP; 29.07.2011 в 10:15.
ZBEP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка из формы сразу на FTP возможна? Blualeono PHP 4 05.01.2011 10:12
Рассылка файлов на FTP dirtzond Работа с сетью в Delphi 3 04.11.2010 14:42
Некорректная загрузка формы из файла Serega123 Общие вопросы Delphi 6 14.04.2010 16:10
скачивание файлов с FTP L.Morgan Работа с сетью в Delphi 2 14.04.2009 10:14
Копирование файлов на FTP Dj_smart Общие вопросы Delphi 2 05.03.2008 09:04