Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41) / 16 сообщений из 16, страница 1 из 1
28.07.2017, 14:11:11
    #39496684
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
Чо-то лыжи не едут :(
пытаюсь отправить файл на сервер по HTTPS.
подключаюсь и читаю страничку нормально.
а вот отправить - хрен :(
что делаю не так?
мож на сервере ещё что-то должно быть включено/настроено?
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
const
  c_URL = 'https://myserv.net:777/mydir';
  c_FileName = 'c:\123.txt';
  c_UserName = 'myname';
  c_Password = 'mypass';
var
  F: TFileStream;
  IdHTTP: TIdHTTP;
  IdSSLIOHandlerSocket: TIdSSLIOHandlerSocket;
  Response: string;
begin
  IdSSLIOHandlerSocket := TIdSSLIOHandlerSocket.Create(Application);
  IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv3;

  IdHTTP := TIdHTTP.Create(Application);
  IdHTTP.IOHandler := IdSSLIOHandlerSocket;
  IdHTTP.Request.BasicAuthentication := true;
  IdHTTP.Request.UserName := c_UserName;
  IdHTTP.Request.Password := c_Password;

  F := TFileStream.Create(c_FileName, fmOpenRead + fmShareDenyNone);

  try
    try
      Response := IdHTTP.Post(c_URL, F);
    except
      on E: Exception do
        MessageBox(0, PChar(E.Message), 'Ашипка!', MB_ICONERROR or MB_SETFOREGROUND or MB_APPLMODAL);
    end;
  finally
    F.Free;
    IdSSLIOHandlerSocket.Free;
    IdHTTP.Free;
  end;
end;


текст ошибки:
Код: sql
1.
HTTP/1.1 404 Not Found
...
Рейтинг: 0 / 0
28.07.2017, 17:09:43
    #39496850
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
нету никого?
...
Рейтинг: 0 / 0
28.07.2017, 17:33:49
    #39496861
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
28.07.2017 17:09, лыжник в кедах пишет:
> нету никого?

не знаю как в POST'е, я лично пользуюсь для этого PUT'ом.
так вот там, в твоём URL одного только указания каталога мало -
нужно указывать в том числе и имя конечного файла
(в который будет скопирован передаваемый тобой).
применительно к твоему коду:
Код: sql
1.
      Response := IdHTTP.PUT(c_URL + '/file_name.ext', F);


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
01.08.2017, 11:02:10
    #39498222
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
Как минимум на сервере кто-то должен обработать твою команду POST
Откуда Апач знает, что сделать с этими данными, которые ты ему суёшь?
...
Рейтинг: 0 / 0
01.08.2017, 12:59:09
    #39498319
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
Cobalt747Как минимум на сервере кто-то должен обработать твою команду POST
Откуда Апач знает, что сделать с этими данными, которые ты ему суёшь?если не затруднит, давай подробнее.
я в этих апачах полный ноль.
...
Рейтинг: 0 / 0
01.08.2017, 13:31:31
    #39498356
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
на том конце сервер принял ваш запрос, а дальше ...
http://php.net/manual/ru/features.file-upload.post-method.php
...
Рейтинг: 0 / 0
01.08.2017, 13:34:04
    #39498360
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
А через браузер можно отправить?
...
Рейтинг: 0 / 0
01.08.2017, 13:34:05
    #39498361
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
krapotkinна том конце сервер принял ваш запрос, а дальше ...
http://php.net/manual/ru/features.file-upload.post-method.php спасибо.
но это ПыхПыХ.
а у нас его нету.
"голый" апач.
...
Рейтинг: 0 / 0
01.08.2017, 13:35:34
    #39498364
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
апач это веб сервер
он сам может вам только 200 OK или 404 Not found отправить
есть файл / нет файла

а кто будет обрабатывать ваше обращение на сервере ???
...
Рейтинг: 0 / 0
01.08.2017, 13:35:44
    #39498365
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
_Vasilisk_А через браузер можно отправить?в каком смысле?
...
Рейтинг: 0 / 0
01.08.2017, 13:38:24
    #39498367
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
krapotkinапач это веб сервер
он сам может вам только 200 OK или 404 Not found отправить
есть файл / нет файла

а кто будет обрабатывать ваше обращение на сервере ???а я знаю?!

кстати, PUT'ом загружается, спасибо Мимопроходящий.
а вот с POST'ом засада...
...
Рейтинг: 0 / 0
01.08.2017, 13:44:20
    #39498370
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
первый раз слышу, чтобы можно было на сервер файл записать куда захочешь, да без скрипта на той стороне
...
Рейтинг: 0 / 0
01.08.2017, 14:03:35
    #39498392
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
лыжник в кедах_Vasilisk_А через браузер можно отправить?в каком смысле?В смысле Вы можете открыть страницу в браузере и нажать там кнопку "Загрузить файл"

Вы не путаете HTTP сервер с FTP сервером?
...
Рейтинг: 0 / 0
01.08.2017, 14:35:34
    #39498428
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
_Vasilisk_лыжник в кедахпропущено...
в каком смысле?В смысле Вы можете открыть страницу в браузере и нажать там кнопку "Загрузить файл"там нету кнопки.
могу запулять туда файл при помощи FF-плугина HttpRequester
_Vasilisk_Вы не путаете HTTP сервер с FTP сервером?нет.
...
Рейтинг: 0 / 0
01.08.2017, 15:09:04
    #39498451
makhaon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
лыжник в кедах,

смотри, что плугин делает и по образу.
...
Рейтинг: 0 / 0
01.08.2017, 15:24:32
    #39498461
Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41)
makhaonсмотри, что плугин делает и по образу.если отправлять файл POST'ом, то выходит тоже что и у меня: 404 Not Found

в общем, я так понимаю, для отработки POST'а на сервере должен быть прописан соответствующий скрипт.
а его там нету.

для PUT'а видимо этого не требуется (или же таковой скрипт там уже таки есть).

наверное на этом обсуждение можно считать законченным.
всем принявшим посильное участие БОЛЬШОЕ СПАСИБО.
:)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Indy 9 TIdHTTP+TIdSSLIOHandlerSocket отправить файл на Web-сервер (Apache/1.3.41) / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]