Schrift
[thread]279[/thread]

Dateien kaputt nach Upload via Script



<< >> 9 Einträge, 1 Seite
cbxk1xg
 2004-06-04 18:32
#2669 #2669
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Hallo Freunde der Sonne,

ich habe ein Script (größtenteils aus dem WIKI kopiert) welches Dateien hochladen soll. Das funktioniert auch prima, nur sind die Dateien danach kaputt. Die Dateigröße ändert sich geringfügig und die Datei (z.B. ein GIF) ist danach nicht mehr lesbar.

Das HTML Formular habe ich bereits überprüft und die Suchefunktion und das WIKI habe ich auch schon bemüht. Das Bild ist auch mit Sicherheit nicht zu groß und $MAX_SIZE_UPLOAD is auch definiert.

Client: Windows, IE
Server: Linux, Apache

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use CGI qw/:standard/;
my $UploadDir = $TEMP_DIR;
$CGI::POST_MAX=1024 * $MAX_SIZE_UPLOAD;

my ($filename) = param('attachment') || "undefined";

print header, start_html;
print ("Filename: $filename<BR><HR>
");

my $serverFile = $UploadDir . "/" .
(split(/[\\\/]/, param('attachment')))[-1];

if (-e $serverFile) {print ("File is already existing
");}

else
{
print ("Writing to file $serverFile<BR>
");

my $buffer;
open (FILE,">$serverFile");
binmode(FILE); # Windows OS hack
binmode $filename; # Windows OS hack
while (my $bytesread=read($filename,$buffer,1024)) {print FILE $buffer;}

close (FILE);
}

chmod (0744, "$serverFile");

print end_html;


Achja, da viel mir gerade noch was ein. Gibt's für so eine Standardaufgabe auch ein Modul?\n\n

<!--EDIT|cbxk1xg|1086359589-->
[E|B]
 2004-06-04 19:18
#2670 #2670
User since
2003-08-08
2561 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Quote
Achja, da viel mir gerade noch was ein. Gibt's für so eine Standardaufgabe auch ein Modul?


CGI::Upload
HTTP::File
CGI::Uploader

Jedoch ist CGI.pm doch schon die beste Lösung.\n\n

<!--EDIT|[E|B]|1086362355-->
Gruß, Erik!

s))91\&\/\^z->sub{}\(\@new\)=>69\&\/\^z->sub{}\(\@new\)=>124\&\/\^z->sub{}\(\@new\)=>);
$_.=qq~66\&\/\^z->sub{}\(\@new\)=>93~;for(@_=split(/\&\/\^z->sub{}\(\@new\)=>/)){print chr;}

It's not a bug, it's a feature! - [CGI-World.de]
cbxk1xg
 2004-06-04 19:52
#2671 #2671
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Nachdem ich mir die 3 Module mal angesehen habe, bin ich da einer Meinung mit dir.

Das bringt mich jedoch zu meiner ersten Frage zurück: Warum sind die Dateien kaputt?
tomlong
 2004-06-04 20:19
#2672 #2672
User since
2003-08-04
93 Artikel
BenutzerIn
[default_avatar]
ist nur geraten aber nimm mal
binmode $filename;
weg :)
hth
Live long and prosper!
42;
cbxk1xg
 2004-06-04 20:30
#2673 #2673
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
[quote=tomlong,04.06.2004, 18:19]ist nur geraten aber nimm mal
binmode $filename;
weg :)[/quote]
Danke, aber das bringt auch nix. Auch nicht wenn ich
binmode(FILE);
rausnehme.

ich habe mittlerweile mal 3 verschiedene UpLoadscripte installiert und alle erzeugen den gleichen Fehler. Die Dateien sind nach upload kaputt. Ich beginne mich langsam zu fragen, ob das nicht 'ne Macke am Server ist. Hat jemand Erfahrung mit solchen Skripten bei 1&1 Webpaketen?
format_c
 2004-06-04 20:56
#2674 #2674
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Also schaun wir mal:
mit param('file_field') bekommst du den Dateinamen ohne Pfad.
mit upload('file_field') bekommst du das Filehandle zurück, aus dem du dann auch die Größe mit dem Fileswitch -s auslesen und mit der maximal erlaubten Größe vergleichen kannst, und du kannst aus dem Filehandle mit read wunderbar lesen.

Gruß Alex
cbxk1xg
 2004-06-04 21:08
#2675 #2675
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Kann mir mal bitte jemand einen kräftigen Tritt geben?!

Ich Vollidiot habe zum Test, ob der Upload auch geklappt hat die Datei wieder heruntergeladen - ABER IM ASCII MODE!!!!!!!!!!!!!!\n\n

<!--EDIT|cbxk1xg|1086368935-->
Dubu
 2004-06-04 21:26
#2676 #2676
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=cbxk1xg,04.06.2004, 19:08]Kann mir mal bitte jemand einen kräftigen Tritt geben?!
[/quote]
*KICK!* ;)

Quote
Ich Vollidiot habe zum Test, ob der Upload auch geklappt hat die Datei wieder heruntergeladen - ABER IM ASCII MODE!!!!!!!!!!!!!!

Dumm, aber kann passieren.

Quote
if ('$FunktionertAllesSoWieEsSoll' eq 'ja' ) {print "Laß es so! ";}

Die Bedingung ist niemals wahr, da auf der linken Seite (ueberfluessigerweise) Single-Quotes stehen und damit die Variable $FunktioniertAllesSoWieEsSoll leider nicht interpoliert wird. ;)
SCNR
cbxk1xg
 2004-06-05 16:20
#2677 #2677
User since
2003-10-20
496 Artikel
BenutzerIn
[default_avatar]
Klugscheißer ;)
<< >> 9 Einträge, 1 Seite



View all threads created 2004-06-04 18:32.