Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12464[/thread]

Ein bisschen AJAX mit Perl (Seite 3)

Leser: 3


<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten
cbxk1xg
 2008-09-10 20:53
#114513 #114513
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
xtomcatx+2008-09-10 18:33:57--
Zeige doch einfach, was du zusammengesetzt hast. Mit "schlägt irgendwie fehl" können die wenigsten was anfangen. Gibt´s eine Fehlermeldung (siehe error.log oder CGI::Carp qw(fatalsToBrowser))? Hat der Apache ausreichend Rechte, um die temporäre Datei zu schreiben?

Ich kann/darf Dateien schreiben. Der Apache ist also brav und bei mir ist immer mindest folgendes Standard:
Code (perl): (dl )
1
2
3
use strict;
use warnings;
use CGI::Carp qw(fatalsToBrowser);


Es gibt keine Fehlermeldung. Das ist es ja, was mich Irre macht. Und ich habe alle Dateien hier-> http://w2m.de/vl/vl.zip zum nachgucken bereitgestellt.

Ich verstehe nicht, warum das anscheinend in PHP nur eine kleine Fingerübung ist und in Perl so super kompliziert. Natürlich ärgert es mich auch maßlos, daß ich es mit pq's Code nicht auf die Reihe kriege, aber das Problem scheint doch größer zu sein. Ich habe mich so ziemlich durch alles "gegoogled" was es zu diesem Thema gibt. Und es gibt x Lösungen in PHP aber nichts brauchbares in Perl.

Ich denke, an der Lösung dieses (eigentlich Standard-) Problems sind bestimmt auch noch andere interessiert. Ich kann doch keinem Benutzer zumuten bei einem Upload > 10MB ohne irgendwelche Infos brav zu warten.

Ich mag Perl wirklich sehr und ich weigere mich zu glauben, daß das nicht gehen soll/kann!
xtomcatx
 2008-09-10 22:07
#114517 #114517
User since
2006-08-27
31 Artikel
BenutzerIn
[default_avatar]
Ersetze das hier:
Code (perl): (dl )
1
2
my $q = CGI->new();
$q->upload_hook(\&hook,$data); # hier meckert strict wegen $data

durch das hier:
Code (perl): (dl )
my $q = CGI->new(\&hook);

oder das hier:
Code (perl): (dl )
1
2
my $q = CGI->new();
CGI::upload_hook(\&hook);

und staune :-)

Woher hast Du denn das Beispiel in Beitrag 9? Immer Doku lesen und an die Beispiele halten, wenn was unklar ist.
Entweder die &hook im Konstruktor new() übergeben oder vorm zugriff via param() so einhängen CGI::upload_hook(\&hook). Von $cgi->upload_hook habe ich nichts gelesen und das ist ein Unterschied. Das eine ist ein funktionaler Aufruf und setzt wahrscheinlich einen globalen Parameter und das andere ist eine Methode für ein Objekt.
In der Doku steht auch, dass $data optional ist.

Bei mir wird jetzt im INCOMING-Verzeichnis eine temp.txt erstellt, die die aktuelle Größe enthält und dann wird die fertige Datei erstellt. Ohne Temp-Datei hat der Upload schon nach Entfernen der $data geklappt.
cbxk1xg
 2008-09-11 19:01
#114543 #114543
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
AAAAAAAAAAAAAAAAHHHHHHHHHHHHHH! Ein Traum! Es geht!!!

Man, war das ein Krampf. Vielen, vielen Dank!

Ich denke, ich hab jetzt auch den Hintergrund verstanden.
cbxk1xg
 2008-09-11 21:34
#114550 #114550
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Update: Mir war das mit der Referenz nicht klar. Hab's noch mal im Kamelbuch nachgelesen und weitestgehend verstanden.

Nochmals, danke!
<< |< 1 2 3 >| >> 24 Einträge, 3 Seiten



View all threads created 2008-09-09 20:27.