AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi http upload aus einer "Form" heraus
Thema durchsuchen
Ansicht
Themen-Optionen

http upload aus einer "Form" heraus

Offene Frage von "noo.bee"
Ein Thema von noo.bee · begonnen am 21. Sep 2009 · letzter Beitrag vom 14. Okt 2009
 
noo.bee

Registriert seit: 13. Sep 2009
24 Beiträge
 
#6

Re: http upload aus einer "Form" heraus

  Alt 22. Sep 2009, 11:57
ich poste mal den ganze code, vllt lässt sich das dann besser der fehler finden

Delphi-Quellcode:
unit duck1709;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, MsMultiPartFormData, IdCookieManager, StrUtils, pngimage, ExtCtrls,
  GIFImg;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    login: TButton;
    IdHTTP1: TIdHTTP;
    Edit2: TEdit;
    Memo1: TMemo;
    upload: TButton;
    IdCookieManager1: TIdCookieManager;
    storXX: TButton;
    Label1: TLabel;
    Edit3: TEdit;
    Image1: TImage;
    Label2: TLabel;
    Label3: TLabel;
    Image2: TImage;
    Image3: TImage;
    procedure loginClick(Sender: TObject);
    procedure uploadClick(Sender: TObject);
    procedure storXXClick(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  StringList, sl: TStringList;
  Edit3: TEdit;
  s: string;
implementation

{$R *.dfm}



procedure TForm1.loginClick(Sender: TObject);
begin
  StringList := TStringList.Create; //TStringList erstellen
  try
    StringList.Values['yl_name'] := '123456123456'; //Edit1.Text;
    StringList.Values['yl_pw'] := '123456123456'; //Edit2.Text;
    StringList.Values['yl_submit'] := 'Login';
    idhttp1.Post('http://duckload.com/index.php?Modul=Login', StringList);
    memo1.Lines.Text := idhttp1.Post('http://duckload.com/member/', StringList);
  finally
     StringList.Free; //Speicherfreigeben
end;
end;

////////////////////////////////////////////////////////////////

procedure TForm1.storXXClick(Sender: TObject);
var
  Position1, Position2: Integer;
begin
  s := idhttp1.Get('http://duckload.com/index.html');

  //sucht nach action=" und gibt die Position im String zurück,
  //wir erhalten die Position von a möchten aber wissen was zwsichen
  // " und " steht. Also zählen wir die Länge des Suchstrings dazu
  Position1 := pos('action="', s) +8;

  //wir suchen nach dem abschließenden ", ab unserer ersten Position,
  //könnten ja mehrere " im String sein...
  Position2 := PosEx(s, '"', Position1) - 1;

  //wir kopieren den Text zwischen unseren Positionen, Copy erwartet
  //aber nicht die Position des letzten Zeichen als dritten Parameter
  //sondern die Anzahl der zu kopieren zeichen, da darfst du jetzt mal selbst überlegen ;-)
  s := Copy(s, Position1, 48);
  edit3.Text := s; // Ausgabe des benutzten Stores

end;

////////////////////////////////////////////////////////////////

procedure TForm1.uploadClick(Sender: TObject);
var
  MultiPartFormDataStream: TMsMultiPartFormDataStream;
  Response: String;
begin
   MultiPartFormDataStream := TMsMultiPartFormDataStream.Create; // Objekte instanzieren
  try
      // Content-Type bestimmen
      idhttp1.Request.ContentType := MultiPartFormDataStream.RequestContentType;

      // Formular-Felder setzen, die keine Dateien sein sollen
      MultiPartFormDataStream.AddFormField('', '');
      // ...

      // Datei laden
      MultiPartFormDataStream.AddFile('upload', 'clock.avi', 'multipart/form-data');

      // diese Methode muss _vor_ dem Senden augerufen werden
      MultiPartFormDataStream.PrepareStreamForDispatch;
      MultiPartFormDataStream.Position := 0;

      try
        // Anfrage abschicken, hier halt z.B. "deine" PHP-Datei hinsetzen
        Response := idhttp1.Post(s, MultiPartFormDataStream);

      except
        // Upload fehlgeschlagen, entsprechend reagieren
      end;
  finally
    MultiPartFormDataStream.Free;
  end;
end;

end.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz