AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi idHTTP: MemoryStream POSTen
Thema durchsuchen
Ansicht
Themen-Optionen

idHTTP: MemoryStream POSTen

Ein Thema von SnuffMaster23 · begonnen am 22. Mär 2007 · letzter Beitrag vom 25. Mär 2007
Antwort Antwort
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#1

idHTTP: MemoryStream POSTen

  Alt 22. Mär 2007, 18:07
Ich hab jetzt schon ne Weile hier gesucht und nix brauchbares gefunden, es kann doch nicht so schwer sein

Ich will ein paar SQL-Befehle an ein Skript schicken (ca 900 kB auf einmal) und hab die in nem MemoryStream.
Ich muss da ja noch irgendwie den Namen des Feldes (textarea) angeben damit das Skript was mit den Daten anfangen kann.
Einfach 'sql_query=' davor funzt nicht...
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#2

Re: idHTTP: MemoryStream POSTen

  Alt 24. Mär 2007, 12:19
Keiner ne Ahnung?

Hier mal mein Code, aber der wird auch nicht mehr sagen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Stream1,
  Stream2: TMemoryStream;
  Start,
  Laenge,
  i: Integer;
  Fil: string;
begin
  if OpenDialog1.Execute then
  begin
    Stream1 := TMemoryStream.Create;
    Stream2 := TMemoryStream.Create;
    Stream1.LoadFromFile(OpenDialog1.FileName);
    SetLength(Fil, Stream1.Size);
    Stream1.Read(PChar(Fil)^, Stream1.Size);
    Start := 1;
    i := 0;

// while Start < Stream1.Size do // zum debuggen auskommentiert, geht schneller so ;)
    begin
      Inc(i);
      Form1.Caption := IntToStr(i) + '/' + IntToStr(Round(Stream1.Size / 921600));
      if Start + 921600 > Stream1.Size then
        Laenge := Stream1.Size - Start
      else
      begin
        Laenge := 921603 + Pos(';', PChar(Fil) + Start + 921600);
        if Start + Laenge > Stream1.Size then Laenge := Stream1.Size - Start;
      end;
      Stream2.Clear;
      Stream2.Write('lang=de-utf-8'#13#10'server=1'#13#10'collation_connection=utf8_general_ci'#13#10'goto=db_details.php'#13#10'show_query=0'#13#10'sql_query=', 104);
      Stream2.Write(Fil[Start], Laenge);
      if CheckBox1.Checked then
      begin
        IdHTTP1.Request.Username := Edit2.Text;
        IdHTTP1.Request.Password := Edit3.Text;
        Stream1.Clear;
        IdHTTP1.Post(Edit1.Text + 'read_dump.php', Stream2, Stream1); //
        Stream1.SaveToFile('test.htm'); // Stream1 wird zum debuggen für die Ausgabe missbraucht
      end
      else
        Stream2.SaveToFile(Copy(OpenDialog1.FileName, 0, length(OpenDialog1.FileName) - length(ExtractFileExt(OpenDialog1.FileName))) + ' ' + IntToStr(i) + '.sql');
      Start := Start + Laenge;
    end;
    Form1.Caption := 'fertig';
  end;
end;
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: idHTTP: MemoryStream POSTen

  Alt 24. Mär 2007, 15:04
Guck dir mal den IdStreamVCL an oder besser gesagt such mal danach im Forum. Da stößt du sicherlich auch ein Beispiel mit dem man Dateien über genannten Stream verschickt.

Dabei wird der Inhalt des FileStreams in den IdSTreamVCL eingelesen. Statt eines FileStreams kannst du natürlich auch einfach deinen MemoryStream einlesen lassen.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#4

Re: idHTTP: MemoryStream POSTen

  Alt 24. Mär 2007, 15:24
Hm, so viel gibts da im Forum auch nicht...

IdHTTP1.Post(Edit1.Text + 'read_dump.php', TIdStreamVCL.Create(Stream2, true), Stream1); Post mag den TIdStreamVCL nicht da inkompatibel zu TStream

Für was braucht man denn überhaupt ne andere Art von Stream?
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Benutzerbild von SnuffMaster23
SnuffMaster23

Registriert seit: 13. Feb 2006
Ort: Kempten
253 Beiträge
 
#5

Re: idHTTP: MemoryStream POSTen

  Alt 25. Mär 2007, 13:11
*push*
"Conspiracy is the poor man's mapping of the world" - Fredric Jameson
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz