Schrift
[thread]12461[/thread]

rename funktioniert nicht

Leser: 1


<< >> 6 Einträge, 1 Seite
Gast Gast
 2008-09-09 11:18
#114399 #114399
Hallo,
ich habe ein Problem mit der rename(); funktion.
Undzwar habe ich ein Bilderuploadscript porgrammiert, wo bilder hochgeladen werden können. Da es anzeige Probleme gibt wegen "üäö" usw möchte ich das bild umbenennen.

Der komplette Pfad zum Bild liegt in $file.
Der neue Pfad (gefiltert) liegt in $file_new

Und nun möchte ich das halt umbennen, doch hier liegt das Problem.

Code: (dl )
1
2
3
4
rename ($file,$file_new); # geht nich , ka wieso

use File::Copy;
move ($file,$file_new); # geht leider auch nicht


Benutze den Webspace von freehostia, sollte eigentlich funktionieren.

Kann mir jemand helfen?Weiß echt nicht woran es liegen kann.
Wenn ich mir $file_new ausgeben lasse, ist der Pfad genauso wie ich ihn haben möchte, nur kann halt nicht umbenennen.
Die cgi Datei hat Permission von 777.Daran kann auch nicht liegen :(

MFG
moritz
 2008-09-09 11:54
#114401 #114401
User since
2007-05-11
923 Artikel
HausmeisterIn
[Homepage]
user image
Der erste Schritt ist, Fehler abzufangen


Code: (dl )
rename $old, $new or die "Can't rename '$old' to '$new': $!";


Dann weisst du vermutlich schon, was schief läuft.
Gast Gast
 2008-09-09 12:41
#114414 #114414
Mein UploadCode

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$size = -s $file ;	
if ($size <= "499000")
{

open (DAT,'>',"upload/".$file);

#binmode $file;
#binmode DAT;

$data;
while(read $file,$data,1024)
{
print DAT $data;
}
close DAT;

# HTML Ausgabe

$old = $file;
$new = "test.jpg";
rename $old, $new or die "Can't rename '$old' to '$new': $!"; # hier ist zeile 92


Software error:

Can't rename 'Licht.jpg' to 'test.jpg': No such file or directory at /home/www/xxxxxxxx.com/upload.cgi line 92.

Aber das Bild ist hier:
http://xxxxxxxxxx.com/upload/Licht.jpg

Kapier nicht wieso er es *angeblich* nicht findet :(

MFG
renee
 2008-09-09 12:44
#114416 #114416
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du hast die Pfadangabe vergessen...

Code (perl): (dl )
1
2
3
$old = "upload/" . $file;
$new = "upload/test.jpg";
rename $old, $new or die "Can't rename '$old' to '$new': $!";    # hier ist zeile 92
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-09-09 13:04
#114419 #114419
ochnöööööö, das hätt ich auch selber merken müssen :(
Nunja wenn man länger an nem Script arbeitet übersieht man ma was :D

vielen dank, hat geklappt :)

MFG
Struppi
 2008-09-09 13:31
#114422 #114422
User since
2006-02-17
628 Artikel
BenutzerIn
[Homepage]
user image
Das Skript bzw. der Ausschnitt ist der "grusel"

Du musst natürlich Dateioperationen prüfen und bei Misserfolg ausgeben lassen warum er nicht funktioniert.

Der Auschnitt sieht so aus, als ob du kein use strict verwendest, aber auf jeden Fall läßt du dir nicht die Warnungen anzeigen, weil Perl hätte dir dann an mehreren Stellen gesagt dass du hier auf nicht vorhandenen Dateien zugreifen möchtest

und auch das:
Code (perl): (dl )
if ($size <= "499000")

ist ganz schlecht, wieso willst du eine Zahl mit einem String vergleichen? ein Stringvergleich führt zu völlig anderen Ergebnisen (javascript:alert('100' < '99'); => true), nur du verwendest gar keinen Stringvergleichoperator, insofern hast du Glück, dass das überhaupt klappt.
<< >> 6 Einträge, 1 Seite



View all threads created 2008-09-09 11:18.