Autor Beitrag
noo.bee
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: Sa 12.09.09 18:19 
ich hab mal n weng gesucht im forum. bin aber net so recht fündig geworden. was ich mir schon notiert hab ist "idftp"...

also, meine frage: ich habe einfach nur ne TForm und möchte per drag&drop dateien hineinziehen und diese dann per knopfdruck z.b. zu meinem account bei funpic, kilo, bplaced ... uploaden.

jedoch finde ich bei codegear nichts wie "ftp" oder "upload" oder ähnliches.
hab auch schon bei google nach ne "anleitung" für mein vorhaben gesucht. ich weiß aber nicht so recht, wo ich nach dem erstellen des Forms anfangen soll.

hat wer ne übersicht was alles zu tun ist um dateien hochladen zu können ?
Xentar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2077
Erhaltene Danke: 2

Win XP
Delphi 5 Ent., Delphi 2007 Prof
BeitragVerfasst: Sa 12.09.09 18:39 
Zu der Komponente IdFTP gibt es genug Anleitugnen, wie man damit Dateien hochlädt -> Forensuche; google; oder die mitgelieferten Beispiele anschauen.
Das könntest du erstmal testweise z.B. mit einem ButtonClick verknüpfen. Wenn das dann funktioniert, solltest du dich an das Drag&Drop machen.

_________________
PROGRAMMER: A device for converting coffee into software.
Dude566
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1592
Erhaltene Danke: 79

W8, W7 (Chrome, FF, IE)
Delphi XE2 Pro, Eclipse Juno, VS2012
BeitragVerfasst: Sa 12.09.09 20:04 
Hier denke ich wirst du fündig: www.delphi-treff.de/...nternet/indy/page/4/

_________________
Es gibt 10 Gruppen von Menschen: diejenigen, die das Binärsystem verstehen, und die anderen.
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 11:34 
also ich hab da mal n bissi rumprobiert. das mit idftp war n fehler von mir. ich benötige http.
ich hab ja dann nen zugang mit user und passwort. so sähe das aus. aber es fehlt noch was. ich kann ja auch nix hochladen.
mit "idhttp.Put" komm ich irgendwie nicht so recht weiter.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
var
  Form1: TForm1;
  fs: TFileStream;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
fs := TFileStream.Create('c:\test.avi'); //testdatei mit 1MB

idhttp1.Request.Username := edit1.Text; //hier tippe ich mein name ein
idhttp1.Request.Password := edit2.Text; //hier tippe ich mein passwort ein
idhttp1.Request.Host := edit3.Text;     //hier tippe ich z.b. bplaced.net oder funpic ein
IdHttp1.Post('http:\\bplaced.net\irgend.ein.ordner', fs);


//fs.Free;


end;

end.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.09.09 11:50 
Http? Bist du sicher? Dann musst du die entsprechende Seite bzw. genauer gesagt das Uploadskript, das die Seite beim Abschicken aufruft, mit den entsprechenden Daten füttern.

Da musst du dann selbst schauen wie das Uploadformular aussieht und welche Daten entsprechend gesendet werden müssen.
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 12:02 
naja es ist so ähnlich wie z.b. bei rapidshare.de... man sucht aus dem browser heraus ne datei aus und klickt dann auf upload. also das is doch dann http oder ?

Zitat:
Dann musst du die entsprechende Seite bzw. genauer gesagt das Uploadskript, das die Seite beim Abschicken aufruft, mit den entsprechenden Daten füttern.

kann ich die daten, die ich dafür benötig vom quelltext auslesen ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.09.09 12:18 
Ja, du siehst dort welches Skript angesprochen wird (action=...) und welche Parameter benötigt werden (die Formularfelder und deren Namen).

Direkten Einblick in die gesendeten Post-Daten usw. erhältst du z.B. mit HttpFox. Auch interessant zur Analyse sind Firebug, Web Developer Toolbar, ...
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 13:20 
also der quelltext gibt folgendes her:

ausblenden Quelltext
1:
action="http://stor01.server.com:555/upload/upload.php" method="post" onsubmit="UploadHandler_startProgressBar('stor01.server.com:555','stor01'); return true;">					


reichen die daten aus ? wenn ja wie gehören die in idhttp eingebunden bzw. welche der angaben aus action benötige ich?
und stor01 ist flexibel. jenach auslastung des servers ändert sich stor01 z.b. zu storXX. also müsste ich vorher noch abfragen, wohin der upload geht
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 13.09.09 13:31 
Naja, zuerst musst du dich ja anmelden, oder? Dafür schaust du am besten mal in das Formular, in dem du deine Logindaten eingibst. Achte auf solche Schnipsel:

ausblenden XML-Daten
1:
2:
<form action="die Adresse" ... >
  <input type="text" name="Name des Benutzernamen-/Passwordfeldes" />



user profile iconnoo.bee hat folgendes geschrieben Zum zitierten Posting springen:
z.b. zu meinem account bei ... bplaced ... uploaden.

BPlaced ist kein Problem, da kannst du doch ein FTP-Konto anlegen lassen. Dann kannst du auch das von user profile iconDude566 gepostete Tutorial verwenden.
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 13:42 
also ich dachte, ich lass das mit name und passwort offen. ich hab das so gemacht:

ausblenden Delphi-Quelltext
1:
2:
idhttp1.Request.Username := edit1.Text; //hier tippe ich mein name ein
idhttp1.Request.Password := edit2.Text; //hier tippe ich mein passwort ein


also man muss in ein textfeld selber name & passwort eingeben... oder funktioniert das so nicht ?

die schnipsel sehen so aus:

ausblenden Quelltext
1:
<input type="text" name="tk_name" value="Name" onclick="if(this.value=='Name'){this.value='';}" onfocus="if(this.value==''){this.value='Name';}" onblur="if(this.value==''){this.value='Name';}" id="username" />					

und
ausblenden Quelltext
1:
<input type="password" name="tk_pw" value="Password" onclick="if(this.value=='Password'){this.value='';}" onfocus="if(this.value==''){this.value='Password';}" onblur="if(this.value==''){this.value='Password';}" id="password" /> <input type="submit" value="Login" name="tk_submit" class="button open" style="cursor:pointer;margin-left:10px;" id="password">					



achja, oben hab ich ja geschrieben, dass FTP nicht geht... mit bplaced und co war nur als beispiel gedacht - aber es is mehr richtung rapidshare.de. also uploaden über die browseroberfläche
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 13.09.09 14:27 
user profile iconnoo.bee hat folgendes geschrieben Zum zitierten Posting springen:
also ich dachte, ich lass das mit name und passwort offen. ich hab das so gemacht:

ausblenden Delphi-Quelltext
1:
2:
idhttp1.Request.Username := edit1.Text; //hier tippe ich mein name ein
idhttp1.Request.Password := edit2.Text; //hier tippe ich mein passwort ein


also man muss in ein textfeld selber name & passwort eingeben... oder funktioniert das so nicht ?

Ne, das geht sicherlich nicht. Diese Art von Authentifizierung wird so gut wie nicht mehr unterstützt. Kannst du ja probieren, aber sicherer wäre es, die Daten in einer StringList zusammenzufassen, à la:

ausblenden Delphi-Quelltext
1:
2:
StringList.Values['tk_name'] = Edit1.Text;
StringList.Values['tk_pw'] = Edit2.Text;

Und dann per Post übergeben:

ausblenden Delphi-Quelltext
1:
IdHttp1.Post('http://server.tld/anmeldeurl', StringList);					

Die Anmelde-URL hast du noch nicht gepostet. Sie befindet sich im Name-Attribut des Formulars, aus dem du gerade die beiden Inputs gepostet hast.
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 14:46 
ähm, steh ich da aufm schlauch oder meinst du

ausblenden XML-Daten
1:
<form action="index.php?Modul=Login" method="post" id="login_form">					

ich melde mich doch bei www.mein.server.com mit user & pass an... ach neeee, du meinst mein.server.com/account.html oder willst du was ganz anderes wissen :gruebel:
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: So 13.09.09 15:05 
user profile iconnoo.bee hat folgendes geschrieben Zum zitierten Posting springen:
ähm, steh ich da aufm schlauch oder meinst du

ausblenden XML-Daten
1:
<form action="index.php?Modul=Login" method="post" id="login_form">					

Nein, genau das mein ich :D

Jetzt musst du nur noch "index.php?Modul=Login" als Adresse (die ich als 'http://server.tld/anmeldeurl') gepostet habe) einsetzen, und per Post abschicken - und am besten mal den Rückgabewert in ein Memo schreiben. Dort müsste jetzt stehen, ob die Anmeldung erfolgreich war.
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 15:51 
mhhh, also ich bekomm zwar keinen fehler angezeigt, aber beim kompilieren bricht er ab wegen einer zugriffsverletzung in http.exe - also so soll dann meine exe heißen

das is mein code
ausblenden volle Höhe Delphi-Quelltext
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:
36:
37:
38:
39:
40:
41:
42:
43:
unit http.form1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,
  StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    IdHTTP1: TIdHTTP;
    Edit2: TEdit;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  // fs: TFileStream;
  StringList: TStringList;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
// fs := TFileStream.Create('c:\test.avi');
StringList.Values['tk_name'] := Edit1.Text;
StringList.Values['tk_pw'] := Edit2.Text;

IdHttp1.Post('http://mein.server.com/index.php?Modul=Login', StringList);

memo1.Lines.Text := idhttp1.ResponseText;
end;

end.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.09.09 15:52 
Du erzeugst die StringList nirgends...
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: So 13.09.09 15:58 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Du erzeugst die StringList nirgends...


Eigentlich sind sowas ja Grundlagen, aber da es eh gefragt wird: So gehts:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
var
  sl: TStrings; //lokale Variable
begin
  sl := TStringList.Create;  //TStringList erstellen
  try
    //wenn die Komponente erstellt wurde wird der Code der hier steht ausgeführt
  finally
    sl.Free; //Speicherfreigeben
  end;
end;
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 16:18 
also es funktioniert dank euch (fast) alles. ich bekomme ein

HTTP/1.0 200 OK

zurückgeliefert. allerdings bekomme ich das auch, wenn ich als name/passwort einfach irgendwas eingebe. wieso ? müsste da nicht ein fehler kommen ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.09.09 16:20 
200 heißt alles ok, und in der zurückgelieferten Seite steht dann das Ergebnis drin. Also ggf. "log dich ein". ;-)
noo.bee Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 120



BeitragVerfasst: So 13.09.09 16:39 
meine frage war noch, mehrere dateien per drag&drop hochzuladen. muss ioch n neues thema anfangen oder wirds hier mit beantwortet ?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19312
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 13.09.09 16:46 
Naja, wenn du den einen Upload fertig hast, dann kannst du das ja mehrfach hintereinander machen. ;-)