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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2014, 12:47   #1
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию Отправка файлов на сервер

Такая проблема.
Создаются файлы от 0 до ... Мне их нужно отправить на фтп хост.Делаю так
IdFTP.Put(memo1.text,(InttoStr(num) +'jpg'),false);
В мемо полный путь до файлов.(получается около 40 картинок).
Не хочет отправлять и все!Может кто посоветует другой метод?
mitiay вне форума Ответить с цитированием
Старый 23.08.2014, 13:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Может кто посоветует другой метод?
Может.
WinInet из моей коллекции:
Код:
function TFtp.WIPutFile(ASource, ADest: ansiString): Boolean;
var dso:Cardinal;
begin
  if Connected then begin
     SetLastError(0);
     dso:=$FFFFFFFF;
     InternetSetOption(hConnect,INTERNET_OPTION_SEND_TIMEOUT,@dso,sizeof(dso));
           if FtpPutFile(hConnect
                ,PAnsiChar(ASource)
                ,PAnsiChar(ADest)
                ,{FILE_ATTRIBUTE_NORMAL} FTP_TRANSFER_TYPE_BINARY
                ,0
        ) then     begin
               Error:='';
               Result:=true;
           end else begin
               Error:='WinInetFtpPutFile: ('+IntToStr(GetLastOSError)+') '+SysErrorMessage(GetLastOSError);

               Result:=false;
           end;
  end else begin
    Error:='';
    Result:=false;
  end;  
end;
Учти! - копипастить код противопоказано. Почитай о функциях, использованных в нем в MSDN
А вообще у тебя уже налицо видна в твоем посте одна грубейшая ошибка. Но что это за ошибка ты должен догадаться сам.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2014, 19:08   #3
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Может.
WinInet из моей коллекции:
Код:
function TFtp.WIPutFile(ASource, ADest: ansiString): Boolean;
var dso:Cardinal;
begin
  if Connected then begin
     SetLastError(0);
     dso:=$FFFFFFFF;
     InternetSetOption(hConnect,INTERNET_OPTION_SEND_TIMEOUT,@dso,sizeof(dso));
           if FtpPutFile(hConnect
                ,PAnsiChar(ASource)
                ,PAnsiChar(ADest)
                ,{FILE_ATTRIBUTE_NORMAL} FTP_TRANSFER_TYPE_BINARY
                ,0
        ) then     begin
               Error:='';
               Result:=true;
           end else begin
               Error:='WinInetFtpPutFile: ('+IntToStr(GetLastOSError)+') '+SysErrorMessage(GetLastOSError);

               Result:=false;
           end;
  end else begin
    Error:='';
    Result:=false;
  end;  
end;
Учти! - копипастить код противопоказано. Почитай о функциях, использованных в нем в MSDN
А вообще у тебя уже налицо видна в твоем посте одна грубейшая ошибка. Но что это за ошибка ты должен догадаться сам.
то есть если поправить эту грубейшию ошибку все норм работать?
mitiay вне форума Ответить с цитированием
Старый 23.08.2014, 20:11   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если поправить эту грубейшию ошибку все норм работать?
Нет конечно )
Ты даже не попытался понять о чем я говорю.
Твоя грубейшая ошибка в том что ты хочешь чтоб мы угадывали ошибку.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2014, 20:18   #5
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нет конечно )
Ты даже не попытался понять о чем я говорю.
Твоя грубейшая ошибка в том что ты хочешь чтоб мы угадывали ошибку.
я понимаю как это сделать!Но не знаю как это описать в делфе!
Я понимаю что нужен цикл(Если первый файл отправлен то отправляем второй до последней строчи)правельно я понимаю?
mitiay вне форума Ответить с цитированием
Старый 23.08.2014, 21:33   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
правельно я понимаю?
Нет не правильно.
Короче - текст ошибки в студию.
И код твой полностью.
А то будем тут на кофейной гуще гадать сто лет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2014, 21:50   #7
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Делать потому что правильно надо.
Код:
//на форме idftp с стандартным именем, memo с путями.
var
i: integer;
begin
idFTP1.Host:='http://mysite.ucoz.ru';
idFTP1.Port:=21;
idFTP1.UserName:='логин входа';
idFTP1.Password:='пароль';
idFTP1.Connect;
if idFTP1.Connected = false then 
begin
ShowMessage('Ошибка соединения');
exit;
end;
try 
for i: 0 To Memo1.Lines.Count-1 Do 
begin
try 
idFTP1.Put(Memo1.Lines.Strings[i],ExtractFileName(Memo1.Lines.Strings[i]),false);
expert
on E: Exception do 
ShowMessage('Ошибка передачи файла:' + Memo1.Lines.Strings[i] + ' Текст ошибки:' + E.Message);
end;
end;
expert
on E: Exception do
ShowMessage('Упс! Что-то пошло не так. Ниже идет текст ошибки:' + #10#13 + E.Message);
end;
ShowMessage('Файлы переданы');
end;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 23.08.2014, 23:20   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
expert
Не expert а Except )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.08.2014, 10:50   #9
mitiay
Форумчанин
 
Регистрация: 16.01.2011
Сообщений: 288
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Делать потому что правильно надо.
Код:
//на форме idftp с стандартным именем, memo с путями.
var
i: integer;
begin
idFTP1.Host:='http://mysite.ucoz.ru';
idFTP1.Port:=21;
idFTP1.UserName:='логин входа';
idFTP1.Password:='пароль';
idFTP1.Connect;
if idFTP1.Connected = false then 
begin
ShowMessage('Ошибка соединения');
exit;
end;
try 
for i: 0 To Memo1.Lines.Count-1 Do 
begin
try 
idFTP1.Put(Memo1.Lines.Strings[i],ExtractFileName(Memo1.Lines.Strings[i]),false);
expert
on E: Exception do 
ShowMessage('Ошибка передачи файла:' + Memo1.Lines.Strings[i] + ' Текст ошибки:' + E.Message);
end;
end;
expert
on E: Exception do
ShowMessage('Упс! Что-то пошло не так. Ниже идет текст ошибки:' + #10#13 + E.Message);
end;
ShowMessage('Файлы переданы');
end;
АААА Спасибо!!!Работает!Последний вопрос )))
Создаю папку
Код:
IdFTP.MakeDir(InttoStr(num));
Как теперь перейти в нее чтоб закачка файлов была в созданную папку?
IdFTP1.ChangeDir('/webspace/httpdocs/upload/' + (InttoStr(num)) ); -Вот так ругается.
mitiay вне форума Ответить с цитированием
Старый 24.08.2014, 10:55   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Вот так ругается.
Опять те же грабли. Телепатировать в честь праздника отказываюсь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка изображения на сервер. victor5133 PHP 2 01.10.2013 04:43
Отправка изображения на сервер qwq C# (си шарп) 1 20.07.2013 20:57
Отправка данных на сервер. iGlass Работа с сетью в Delphi 2 10.09.2009 17:17
Отправка формы на сервер max38934 HTML и CSS 1 10.07.2009 09:50
Отправка файла на сервер kirill555 PHP 8 21.12.2007 12:51