Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Fileupload verschnellern bzw mehrere gleichzeitig! (https://www.delphipraxis.net/66513-fileupload-verschnellern-bzw-mehrere-gleichzeitig.html)

bennle 30. Mär 2006 16:46


Fileupload verschnellern bzw mehrere gleichzeitig!
 
Hallo,
Ich habe mir eine Software geschrieben, welche Dateien und Infos per Post an ein PHP Skript sendet.
Allerdings muss ich jetzt feststellen, dass es machmal wirklich zu lange dauert.
Da ich leider nicht den Zugriff auf den Server besitze kommt keine andere Lösung in Frage.
Bei den Dateien handelt es sich um Bilder! Der Upload geschieht über Indy

So nun meine Frage, gibt evtl eine Methode dies zu verschnellern??
Ich habe schon an eine Datenkomprimierung (ZIP) gedacht, welches mein Skript dann wieder entpackt. Aber eine andere Lösung wäre mir lieber.
Ebenfalls würde ich gerne wissen, ob es möglich ist mehrere Uploads gleichzeitig zu starten. Damit das ganze etwas schneller abläuft.

Über eine akzeptable Lösung würde ich mich freuen.

MfG
Bennle

Die Muhkuh 30. Mär 2006 16:49

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Hi bennle,

meine Frage vorweg: Welche Internetverbindung hast du?

Es wäre auch gut, wenn du uns den relevanten Code zeigst (der vom Upload), damit wir dir helfen können.

Was gefällt dir an der Lösung mit Zip nicht? So schlecht finde ich die nichtmal.

Zitat:

Ebenfalls würde ich gerne wissen, ob es möglich ist mehrere Uploads gleichzeitig zu starten
Hier würde ich so vorgehen:

Für jeden Upload erstellst du einen Thread (Schau mal auf www.michael-puff.de da hats ein prima Tutorial) und übergibst diesem Thread den Dateinamen, den du hochladen willst und, wohin die Datei soll.

In dem Thread wird dann ein IdFTP (wenn du FTP-Upload machst) erzeugt und lädt die Datei hoch.

Dj_Base 30. Mär 2006 16:52

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Hi!

Die Zip-Lösung finde ich gar nicht so schlecht...
Obwohl ich nicht genau weiss, ob man bei JPG-Dateien allgemein soviel spart bei einer Kompression.

Aber sonst den Upload verschnellern ist warscheinlich nicht drin, denn du kannst ja auch nicht deinen Upload-Speed erhöhen bzw. auf die php.ini auf dem Server zugreifen, die - so meine ich mich erinnern zu können - u.a. die Upload-Geschwindigkeit regulieren kann.

mfg,
Dj_Base

bennle 30. Mär 2006 16:56

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Hallo,
Danke für deine schnelle Antwort
Zitat:

Zitat von Spider

meine Frage vorweg: Welche Internetverbindung hast du?

Ich habe DSL 2000.

Zitat:

Es wäre auch gut, wenn du uns den relevanten Code zeigst (der vom Upload), damit wir dir helfen können.
Hier:
Delphi-Quellcode:
function SendPictureData(Ahttp: TIdHTTP; const AtoURL: String; const aParams: TStrings): String;
  //Ahttp: Die HTTP Komponente von Indy
  //AtoURL: An diese URL werden die Informationen gesendet
  //aParams: Array mit Bildern (Pfad)
  //Result: HTML-Ergebnis (Antwort des Scripts)
Var
  lStream: TMemoryStream; //HTML-Result des PHP-Scripts
  I: Integer;
  picture: TIdMultiPartFormDataStream;   //Unit IdMultipartFormData muss eingebunden werden
begin
  Result:='';
  if not Assigned(aHttp) then
    exit;
  lStream := TMemoryStream.create;
  picture := TIdMultiPartFormDataStream.Create;
  try
  AHTTP.Request.ContentType := 'multipart/form-data';
    //Dieser Stream wird letztendlich gesendet
    //Stream mit Werten füllen
    for I:=0 to aParams.Count-1 do
      picture.AddFile('bild'+IntToStr(I+1),aParams[I],'image/jpeg');

    try
      //Stream an das PHP-Script senden
      AHTTP.Post(AtoURL,
                 picture,
                 lStream);
    except
      on E: Exception do
        showmessage('Fehler bei der Übertragung: ' + E.Message);
    end;
    SetLength(Result,lStream.Size);
    lStream.Position:=0;
    lStream.ReadBuffer(Result[1],lStream.Size);
  finally
    picture.Free;
    lStream.Free;
  end;
end;
Zitat:

Was gefällt dir an der Lösung mit Zip nicht? So schlecht finde ich die nichtmal.
Ich glaube es ist kein Standart bei den Providern diese in PHP einzukompilieren! Daher scheint es mir unpraktisch

Zitat:

Für jeden Upload erstellst du einen Thread (Schau mal auf www.michael-puff.de da hats ein prima Tutorial) und übergibst diesem Thread den Dateinamen, den du hochladen willst und, wohin die Datei soll.
Werde mir das mal anschaun. Hört sich fürs erste mal gut und brauchbar an.

MfG
Bennle

Die Muhkuh 30. Mär 2006 16:59

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Zitat:

Zitat von bennle
Zitat:

Zitat von Spider
meine Frage vorweg: Welche Internetverbindung hast du?

Ich habe DSL 2000.

Dann kannst du mit maximal 24 kb/s uploaden. Bei einigen Bildern kann das schon eine Weile dauern. Verschnellern kannst du da nur, in dem du dir ein schnelleres DSL holst *g*. Nein Scherz beiseite. Mit Verschnellern sieht es leider schlecht aus (zumindest ist mir nicht bekannt, wie man dies tun könnte).

bennle 30. Mär 2006 16:59

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Zitat:

Zitat von Dj_Base
Hi!

Die Zip-Lösung finde ich gar nicht so schlecht...
Obwohl ich nicht genau weiss, ob man bei JPG-Dateien allgemein soviel spart bei einer Kompression.

Aber sonst den Upload verschnellern ist warscheinlich nicht drin, denn du kannst ja auch nicht deinen Upload-Speed erhöhen bzw. auf die php.ini auf dem Server zugreifen, die - so meine ich mich erinnern zu können - u.a. die Upload-Geschwindigkeit regulieren kann.

mfg,
Dj_Base

Hallo,
Naja ok, ich denke es ist schon getan, dass ich mehrere Upload gleichzeitig machen kann. Es kommt mir einfach nur recht langsam vor! Ich glaube fast, das ich über das Webformular schneller bin, als wenn ich es mit der Software hochlade!
Übrigens werden nur kleine Bilder versand von höchstens 0,5 MB

MfG
Bennle

Die Muhkuh 30. Mär 2006 17:00

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Wie groß ist so ein Bild und wielange dauert es, bis es auf dem Server ist?

bennle 30. Mär 2006 17:02

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Zitat:

Zitat von Spider
Wie groß ist so ein Bild und wielange dauert es, bis es auf dem Server ist?

Die Bilder sind durchschnittlich ca 50 kB groß! Wenn ich ca 30 hochlade benötige ich um die 7 min!

MfG
Bennle

Die Muhkuh 30. Mär 2006 17:06

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Also, rechnen wir mal:

30 Bilder * 50 kb = 1500kb = 1,47mb

DSL 2000 kann 24 kb / s:

1500 / 24 = 62,5 s

OK, das wäre 1 minute.

Vielleicht liegt es ja daran, dass du keinen FTP-Upload verwendest. Wenn Du die möglich für FTP-Upload hast, könntest du mal versuchen, ob Du mit diesem schneller bist.

bennle 30. Mär 2006 17:08

Re: Fileupload verschnellern bzw mehrere gleichzeitig!
 
Zitat:

Zitat von Spider
Also, rechnen wir mal:

30 Bilder * 50 kb = 1500kb = 1,47mb

DSL 2000 kann 24 kb / s:

1500 / 24 = 62,5 s

OK, das wäre 1 minute.

Vielleicht liegt es ja daran, dass du keinen FTP-Upload verwendest. Wenn Du die möglich für FTP-Upload hast, könntest du mal versuchen, ob Du mit diesem schneller bist.

Hallo,
FTP-Upload ist leider nicht möglich bzw zu unsicher, da diese Software an meine Kunden verteilt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:08 Uhr.
Seite 1 von 3  1 23      

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