AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Picuploader für Picupload.org
Thema durchsuchen
Ansicht
Themen-Optionen

Picuploader für Picupload.org

Ein Thema von goenner90 · begonnen am 25. Aug 2008 · letzter Beitrag vom 27. Aug 2008
Antwort Antwort
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#1

Picuploader für Picupload.org

  Alt 25. Aug 2008, 21:21
HI,
ihr Progger aus der Delphi Praxis,

Ich wurde von einem Freund angesprochen ob ich nicht ein kleines Upload Tool für seine Page basteln könnte (Picupload.org) .

Das ausfüllen der Forms beim TWebbrowser war ja nicht schwer aber dieser ist meines erachtens dafür nich geeignet da man ihn dafür erstmal haben muss also den IE und ausserdem das ganze ziemlich den Prozessor auslastet da halt der IE benützt wird.

Deswegen , habe ich es mit Indy versucht, weil ich schon desöfteren davon gelesen habe das das damit recht gut funzt und die Indykomponenten auch schon für andere Projekte benützt habe.

Ich habe dann auch das hier gefunden :

http://www.delphipraxis.net/internal...ht=indy+upload

das hat aber net wirklich funktioniert........

jetzt wäre meine Frage wie ich auf picupload.org eine datei hochlade und dann am besten gleich noch die Links auslese die man bekommt.

(Ja ich habe die Erlaubnis des Admins der Seite)

Mfg goenner90

ICh hoffe eure klugen Köpfe können mir helfen
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Picuploader für Picupload.org

  Alt 25. Aug 2008, 21:36
Hi,

da Du die Erlaubnis des Admins hast, frag ihn doch mal, ob er nicht eine API bereit stellen kann?
  Mit Zitat antworten Zitat
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Picuploader für Picupload.org

  Alt 25. Aug 2008, 22:33
kann er net weil er es eben nicht kann...
also plz help bei dem upload mit INdy.

Thx
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#4

Re: Picuploader für Picupload.org

  Alt 25. Aug 2008, 22:37
Zitat von goenner90:
kann er net weil er zu doof dafür ist sagt er.....
also plz help bei dem upload mit INdy.

Thx
Wer hat denn dann das Script auf der Seite gemacht und wer administriert den Server? (ich denke doch mal das ist ein Rootserver)

Du musst das Bild mit POST senden. Als Antwort bekommst du dann die Seite in dem die URL usw. sind. Das herauszufiltern sollte kein Problem darstellen.
  Mit Zitat antworten Zitat
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Picuploader für Picupload.org

  Alt 26. Aug 2008, 14:34
Das Script ist ein free - picupload script.
Na der Kumpel von mir administriert die Page.

Ja das per Post senden is ja net gesagt, trotzdem noch kein PLan....und wie ich die antwort dan abfange auch nicht...

PLz Help.

mfg
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#6

Re: Picuploader für Picupload.org

  Alt 26. Aug 2008, 14:47
Hallo.

Dort findest du ein Beispiel, wie ein Bild an einen anderen Bildhoster gesendet wird:
http://www.delphipraxis.net/internal...=919071#919071

Für PicUpload.org brauchst du folgende FormFields:

Delphi-Quellcode:
AddFormField('upload', '')
AddFormField('MAX_FILE_SIZE', '10485760')
AddFormField('upload_von','computer')
Zum Schluss hängst du noch die Datei an:
AddFile('datei', 'C:\test.gif', 'image/gif'); Das Ganze sendets du per POST an http://picupload.org/index.php
Als Ergebnis solltest du den Quelltext zurückbekommen, in dem du dann nach der URL suchen musst.

Gruß, Björn
  Mit Zitat antworten Zitat
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Picuploader für Picupload.org

  Alt 26. Aug 2008, 21:01
soo,
liebe leute
heute war ein langer Tag ich habe bestimmt 5 stunden an dem ganzen upload dingens rumprobiert, nach manchen einsichten und kleinen erfolgen bin ich quasi immer noch bei 0......

hier mal mein Delphi source:
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,idMultipartformdata,MsMultiPartFormData, IdBaseComponent, IdComponent,
  IdTCPServer, IdCustomHTTPServer, IdHTTPServer, IdTCPConnection,
  IdTCPClient, IdHTTP;

type
  TForm1 = class(TForm)
    Button1: TButton;
    httpMain: TIdHTTP;
    Button2: TButton;
    Memo1: TMemo;
    Button3: TButton;
    IdHTTP1: TIdHTTP;
    Button4: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var

Stream: TMSMultiPartFormDataStream;

StringStream: TStringStream;

begin

Stream := TMSMultiPartFormDataStream.Create;

StringStream := TStringStream.Create('');

try
      Stream.AddFormField('upload', '');
      Stream.AddFormField('MAX_FILE_SIZE', '10485760');
      Stream.AddFormField('upload_von','computer');
Stream.AddFile('datei', 'C:\bild.jpg', 'image/jpeg');
IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP1.Post('http://picupload.org/index.php', Stream, StringStream);
memo1.text:=idhttp1.ResponseText;
finally

Stream.Free;

//StringStream.Free;

end;

end;
procedure TForm1.Button2Click(Sender: TObject);
var
  DataStream: TidMultiPartFormDataStream;
  Response: string;
begin
    DataStream:=TidMultiPartFormDataStream.Create;
    try
      IdHTTP1.Request.ContentType:='multipart/form-data';
      DataStream.AddFormField('upload', '');
      DataStream.AddFormField('MAX_FILE_SIZE', '10485760');
      DataStream.AddFormField('upload_von','computer');
      DataStream.AddFile('file','C:\bild.jpg','image/jpg');
      //Response:=IdHTTP1.Post('http://picupload.org',DataStream);
      memo1.Text:=IdHTTP1.Post('http://picupload.org/index.php',DataStream);
    finally

      DataStream.Free;
    end;
end;

procedure TForm1.Button3Click(Sender: TObject);
var
  MultiPartFormDataStream: TMsMultiPartFormDataStream;
  HttpServer, Response: String;
begin

  // Objekte instanzieren
  MultiPartFormDataStream := TMsMultiPartFormDataStream.Create;

  try
      // Content-Type bestimmen
      httpMain.Request.ContentType := MultiPartFormDataStream.RequestContentType;

      // andere Formular-Felder übergeben
      MultiPartFormDataStream.AddFormField('upload','1');
      MultiPartFormDataStream.AddFormField('MAX_FILE_SIZE','10485760');
      MultiPartFormDataStream.AddFormField('upload_von','computer');

      // Datei laden
      MultiPartFormDataStream.AddFile('file','C:\bild.jpg','image/jpeg');

      // Anfrage vorbereiten
      MultiPartFormDataStream.PrepareStreamForDispatch; { You must make sure you call this method *before* sending the stream } 
      MultiPartFormDataStream.Position := 0;

      try

        // Anfrage stellen
        //Response := httpMain.Post('http://picupload.org/index.php', MultiPartFormDataStream);
        //memo1.Text:=Response;
        memo1.Text:= httpMain.Post('http://picupload.org/index.php', MultiPartFormDataStream);
      except
         //Upload fehlgeschlagen
      end;
    //end;
  finally
    MultiPartFormDataStream.Free;
  end;
end;



end.
Button 1 -button3 click sind die verschiedenen prozeduren mit denen ich es versucht habe...ich würd gern weiter machen an dem prog aber wenn der uplaod nicht hinhaut kann ich das natürlich vergessen

also bei Button1.click steht dann folgendes in der Memo also nach dem ausführen)

HTTP/1.1 200 OK liegt aber glaube daran das ich das falsch abfange, hoch geladen wird es auf jeden fall trotzdem nciht...

Button1.click wirft folgendes in die memo:
Delphi-Quellcode:
            </table>
                    </td>
                </tr>
                <tr>
                    <td class="box_text">Es wurde keine Datei hochgeladen.
[url="./index.php"]Klick hier[/url], um zum Statseite zu gelangen.
<script type="text/javascript">window.setTimeout("weiterleitung('./index.php')", 0000);</script>Sie werden in 0 Sekunden automatisch weitergeleitet.</td>
                </tr>
            </table>
also selbstverständlich steht noch mehr im memo aber das ist halt der relevante teil...

so und button3.click haut das ins memo:
Delphi-Quellcode:
</table>
                    </td>
                </tr>
                <tr>
                    <td class="box_text">Es wurde keine Datei hochgeladen.
[url="./index.php"]Klick hier[/url], um zum Statseite zu gelangen.
<script type="text/javascript">window.setTimeout("weiterleitung('./index.php')", 0000);</script>Sie werden in 0 Sekunden automatisch weitergeleitet.</td>
                </tr>
            </table>
also das gleiche wie bei button2.click

Ich habe jetzt in dem source schgon viel rumprobiert und wegkomentiert und ausprobiert...aber es will nicht gelingen.

Kann mir jmd vll eine funktionierende Prozedur geben? Ich würde mich auch mit einem 7 Tage Rs Account revanchieren.

mfg goenner90
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#8

Re: Picuploader für Picupload.org

  Alt 27. Aug 2008, 01:03
Ich würde den StringStream weglassen und das Ergebnis der Post-Function (=HTML-Code, der vom Browser geparst werden würde) einer TStringList.Text Property zuweisen:
slWork.Text:=IdHTTP.Post(); Dann könntest du den Text zur Kontrolle in ein Memo laden und aus der StringList bequem die benögten URLs auslesen.

Gruß, Björn
  Mit Zitat antworten Zitat
goenner90

Registriert seit: 25. Dez 2007
21 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Picuploader für Picupload.org

  Alt 27. Aug 2008, 12:00
Hallo Björn,
leider blick ich da jetzt nich ganz mehr durch da man nach dem verzweifelten Versuchen auch iwann verrückt im Kopf wird was man schon probiert hat und was nicht.....

Wärst du vielleicht so lieb und könntest den Source so umschreiben wie du sagtest?

Jedem anderen der den Upload hinbekommt biete ich immer noch einen 7 Tages Rapidshare Premium Account.

mfg

...wenn endlich der upload funzen würde, würde das ganze nicht so hängen und ich könnt weiter machen..
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 10. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#10

Re: Picuploader für Picupload.org

  Alt 27. Aug 2008, 12:32
Dein erster Versuch war schon fast richtig:

Delphi-Quellcode:
uses
  IdHTTP, IdMultiPartFormData;

procedure PicUpload(BildPfad);
var
  IdHTTP: TIdHTTP;
  Stream: TIdMultiPartFormDataStream;
  slWork: TStringList;
begin
  IdHTTP:=TIdHTTP.Create;
  Stream:=TIdMultiPartFormDataStream.Create;
  slWork:=TStringList.Create;
    try
      Stream.AddFormField('upload', '');
      Stream.AddFormField('MAX_FILE_SIZE', '10485760');
      Stream.AddFormField('upload_von','computer');
      Stream.AddFile('datei', BildPfad, 'image'+StringReplace(ExtractFileExt(BildPfad),'.','/',[]));
      slWork.Text:=IdHTTP.Post('http://picupload.org/index.php', Stream);
      // in slWork.Text steht jetzt der HTML Code. Viel Spaß beim filtern :-D
    finally
      IdHTTP.Free;
      Stream.Free;
      slWork.Free;
    end;
end;
  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 23:35 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