Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Ftp сервер


Автор: sniron 24.11.2004, 23:18
Тут использую компонент FtpServer1 (скачать можно с http://netsiv.narod.ru/VC32.rar), когда сервер начинает работать, я пробую войти на него с локального хоста, он не спрашивая пароля автоматически открывает c:\temp. Вообщем, если не проходит ааудентификация пользователя, то он автоматически дает доступ к определенной папке. Как закрыть этот достоп и изменить папку по умолчанию? Вот этот самый исходник:

Код

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, FtpSrv;

type
 TMainForm = class(TForm)
   FtpServer1: TFtpServer;
   Button1: TButton;
    function isClientThere(sUser : string): Boolean;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
  MainForm: TMainForm;

implementation

{$R *.dfm}

function TMainForm.isClientThere(sUser : String): Boolean;
begin
isClientThere := false;
end;


procedure TMainForm.Button1Click(Sender: TObject);
begin
FtpServer1.Start;
end;

end.

Добавлено @ 23:20
Точнее на компоненты эта ссылка:
http://netsiv.narod.ru/VC32.rar

Автор: <Spawn> 25.11.2004, 06:21
А зачем ты используешь сторонний компонент, если есть TidFTP на вкладке IndyClients?

Автор: sniron 25.11.2004, 14:32
<Spawn>, Да с ним легче и проще, да и темболее уже значительную чать роботы я проделал с FtpServer1. Вот только этот вопрос решить не могу.
ps Если не трудно брось исходничек фтп сервера с использованием TidFTP, или хотя бы дай ссылку про статью на него, плиз. НО конечно лучше бы решить вопрос с FtpServer1!

Автор: <Spawn> 25.11.2004, 16:11
Я несколько ошибся - ты сервер создашь, а для этого можно использовать TidFTPServer с Indy Servers. Примера для этого компонента у меня нет, так как использовал только TidFTP.

Автор: sniron 25.11.2004, 22:00
<Spawn>, понятно, мож кто еще че нить придумает?

Автор: Akella 11.12.2004, 10:07
у меня есть такой пример

Автор: sniron 11.12.2004, 16:58
У меня то же такой пример есть, а вот как сделать так, что бы в этом примере, при подключении не авторизированого пользователя не высвечивалась c:\temp, а происходил процесс авторицации. К примеру я набираю ftp://127.0.0.1 - у меня высвечивается папка c:\temp, а надо что бы появлялась табличка с запросом логина и пароля (та же самая что в Файл-> войти как).
Пожалуйса помогите! Очень надо. Всю жизнь буду помнить! А в будующей программе постараюсь упамянуть героя!

Автор: Akella 14.12.2004, 13:00
я вообще не могу подключиться к нему, объясни поподробнее smile

Автор: Akella 14.12.2004, 13:08
///

Автор: sniron 15.12.2004, 00:27
dsergey, Нажми кнопку запустить, а потом попробуй локально на сервер войти(в командной строке ftp://127.0.0.1).

Автор: NoXprogrammer 22.7.2005, 11:17
Подскажите, добры люди, где можно найти компонент TFtpServer?
Желательно РАБОЧУЮ ссылочку.

Автор: _hunter 22.7.2005, 12:11
самая рабочая smile
http://ww2.unime.it/flr/tftpserver/

Автор: NoXprogrammer 23.7.2005, 07:41
Спасибо, _hunter, но что-то лыжи не едут, либо я ...... smile
Я оттуда стянул TftpServer.dmg, но по-моему это для МакОсей или чего-то ещё. А мне-то нужен для Delphi6, ато попытался скомпилить то, что предложил dsergey, а дельфя выдаёт 'Class TFtpServer not found', да ещё и напоследок 'Class TXPManifest not found'.

Автор: Akella 25.7.2005, 09:19
попробуй скомпилить в D7

Автор: NoXprogrammer 27.7.2005, 06:19
dsergey, половина проблемы решена - D7 и D2005 не ругаются на TXPManifest (есть наверное), а вот главная проблема осталась - 'Class TFtpServer not found'. Компонента, наверное, не хватает. А свой FTP-сервак так сделать хочется smile...

Автор: Akella 27.7.2005, 09:07
а у тебя стоят компоненты ICS?
Добавлено @ 09:14
Если бы ты открыл форму "О программе", то увидел бы такую надпись
Цитата
Программа основана на ICS - Internet Component Suite
smile

Автор: ring0D 10.8.2005, 15:51
Возможно ты не пробовал разобраться.... при Аутентификации надо поставить Client.HomeDir := 'D:\';

Автор: vvs777 15.8.2005, 15:59
Не, я чтото не вьехал. Юзал я этот компонент. Хороший.
Можно же в его сырцах поискать слово temp и что-то переделать?

Автор: ring0D 17.8.2005, 18:58
А зачем ? Просто указываешь стартовую дирку и всё ! Вот моя процедура :

Код

procedure TForm1.FtpServer1Authenticate(Sender: TObject;
  Client: TFtpCtrlSocket; UserName, Password: TFtpString;
  var Authenticated: Boolean);
begin
 if (UserName = LOGIN.Text) and (Password = PASS.Text) then
  begin
   Client.HomeDir := HOMEDir.Text;
   Authenticated := True;
  end else Authenticated := False; 
end;

только в USES добавь FtpSrvC

Автор: generator 13.9.2005, 18:09
2 sniron

У меня есть пример использования TidFTPServer и TIdFTP, только я не могу его к сообщению приаттачить smile

Если надо, могу попробовать на мыло скинуть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)