Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi PHP ? Upload ? Delpi ? (https://www.delphipraxis.net/20295-php-upload-delpi.html)

horst 24. Apr 2004 23:56

Re: PHP ? Upload ? Delpi ?
 
so kannst das feld füllen
Delphi-Quellcode:
procedure TForm1.SetFilename(Value: WideString);
var
  Doc: IHTMLDocument2;
  Elements: IHTMLElementCollection;
  Element: IHTMLElement;
  InputElement: IHTMLInputElement;
  I, j: Integer;
  FormItem: Variant;
  pch: PChar;
  str1: string;
begin
  str1 := Value; //convert input value to string
  pch := PChar(str1); //type cast to pointer

  Doc := WebBrowser1.Document as IHTMLDocument2;
  Elements := Doc.all;
  for I := 0 to Elements.length - 1 do
  begin
    Element := Elements.item(I, EmptyParam) as IHtmlElement;
    if Element.tagName = 'loadfile' then
    begin
      InputElement := Element as IHTMLInputElement;
      if (SameText(InputElement.type_, 'file')) and
        (SameText(InputElement.Name, 'deindateiname')) then
      begin
        FormItem := InputElement;
        FormItem.Focus;
        SendKeys(PCh, False); // NOTE the false flag
      end;
    end;
  end;
end;
du brauchst dazu die SNDKEY32.PAS... ist auf der delphi cd in X:\INFO\EXTRAS\SENDKEYS

mcjoin 21. Jun 2005 10:21

Re: PHP ? Upload ? Delpi ?
 
ich hab bei delphi 7 EE das gleiche problem gehabt. anscheinend muss auch da die pas datei wie in dem anderen thread beschrieben ändern.
ersetzen mit:
sContentDisposition = 'Content-Disposition: form-data; name=';

Catbytes 21. Jun 2005 11:06

Re: PHP ? Upload ? Delpi ?
 
Wenn Du schon die Indy-Komponenten benutzt, warum nimmst Du nicht "Put"?

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  PutDataStream: TStringStream;
  Datei: TFileStream;
  Stream: TStream;
begin
  if (OpenDialog1.Execute) then
    Datei := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
  Stream := TStream.Create;
  Stream := Datei;
  PutDataStream := TStringStream.Create('');
  try
    IdHTTP1.Put('http://wasauchimmer.de', Stream, PutDataStream);
    Memo1.Text := PutDataStream.DataString;
  finally
    PutDataStream.Free;
    Stream.Free;
  end;
end;
In PHP sieht das ganze dann so aus, um mit PUT-Dateien zu empfangen:

Code:
/* PUT Daten kommen in den stdin Stream */
$putdata = fopen("php://stdin","r");

/* Eine Datei zum Schreiben öffnen */
$now = date("Y-m-d - H_i_s");
$fp = fopen("put/".$now.".txt","w");

/* Jeweils 1kB Daten lesen und
   in die Datei schreiben */
while ($data = fread($putdata,1024))
  fwrite($fp,$data);

/* Die Streams schließen */
fclose($fp);
fclose($putdata);
Pfad (put/) halt anpassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 Uhr.
Seite 2 von 2     12   

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