php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.10.2008, 22:55  
Benutzer
 
Registriert seit: 04.08.2008
Beiträge: 67
PHP-Kenntnisse:
Fortgeschritten
lithium befindet sich auf einem aufstrebenden Ast
Standard Datei upload mit rename

Guten Abend,

ich habe ein kleineres Upload script, welches die datei uploaden, renamen und verschieben soll.
Mein problem ist nun, dass er die datei nicht verschiebt..

PHP-Code:
               if($_FILES['datei']['size'] <  30240)
                  {
                      
move_uploaded_file($_FILES['datei']['tmp_name'], "images/avatars/".$_FILES['datei']['name']);
                    
rename("images/avatars/" $_FILES['datei']['name'], $_FILES['datei']['endname']);

                      echo 
'Das Bild wurde Erfolgreich nach images/avatars/' $_FILES['datei']['endname'] . ' hochgeladen.';
                    
                      
                      
$sql "UPDATE
                                  adminuser
                            SET
                                  avatar = '"
.$_FILES['datei']['endname']."'
                              WHERE
                                  ID = '"
.$auth['0']."'";

                      
mysql_query($sql) OR die(mysql_error());

                  } 
Wennich das rename rausmache, funktioniert es...
Er sagt mir dann es wurde nach images/avatars/ hochgeladen. Ohne den dateinamen, und in die datenbank wird auch dann kein dateiname gespeichert.
Speichern tut er es zwar unter images/avatars, jedoch mit dem dateinamen vom user, der die datei hochladet, und nicht mit dem wert "endname".

Endname übertrage ich aus dem formular mit

PHP-Code:
    $random md5(uniqid(microtime()));  
    
$random substr($random,0,10);  
    echo 
'<div align="center">Wähle hier dein neues Avatar aus, wenn du das alte nicht mehr magst.<br /><br /><form action="?uploadedavatar" method="post" enctype="multipart/form-data"><br />
          <input name="datei" type="file" size="50" maxlength="100000" accept="text/*"><br />
          <input type="text" name="endname" size="25" maxlength="255" readonly="1" value="' 
$random '"><br /><br />
          <input type="submit" name="submit" value="Hochladen" /><br />
          Bitte nur EINMAL auf Hochladen klicken, und dann auf das Ergebnis warten!<br />
          </form></div>'

Wäre super, wenn jemand ne Idee hätte.

Gruß,
Lithium
lithium ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.10.2008, 23:21  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

wo wertest Du denn die Fehlermeldungen aus ?
$_FILES['ERROR']

PHP-Code:
if(!move_uploaded_file($_FILES['datei']['tmp_name'], 
"http://www.php.de/images/avatars/".$_FILES['datei']['name']))
   echo 
'Fehler beim Hochladen';
if(!
rename("http://www.php.de/images/avatars/" $_FILES['datei']['name'], 
$_FILES['datei']['endname'])
   echo 
'Fehler beim umbenennen der Datei: '."http://www.php.de/images/avatars/" $_FILES['datei']['name'].
' in '.$_FILES['datei']['endname']; 
gib als Zieldatei den absoluten Pfad an.

Wo kommt $_FILES['datei']['endname'] her ?

Geändert von Koala (11.10.2008 um 23:25 Uhr).
Koala ist offline  
Alt 11.10.2008, 23:55  
Benutzer
 
Registriert seit: 04.08.2008
Beiträge: 67
PHP-Kenntnisse:
Fortgeschritten
lithium befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von lithium Beitrag anzeigen
PHP-Code:
    $random md5(uniqid(microtime()));  
    
$random substr($random,0,10);  
    echo 
'[....]
          <input type="text" name="endname" size="25" maxlength="255" readonly="1" value="' 
$random '"><br /><br />
          [....]'

ich bin bisher der annahme gegangen, dass ich so den value von dem input field holen kann, und ihn dann als neuen namen zuweisen kann ?!?!

Geändert von lithium (12.10.2008 um 00:12 Uhr).
lithium ist offline  
Alt 12.10.2008, 00:33  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

$_POST['endname'] - nicht $_FILES

print_r($_POST); bzw. print_r($_FILES); zeigt Dir was ankommt.
Koala ist offline  
Alt 12.10.2008, 01:13  
Benutzer
 
Registriert seit: 04.08.2008
Beiträge: 67
PHP-Kenntnisse:
Fortgeschritten
lithium befindet sich auf einem aufstrebenden Ast
Standard

Hmm.. wie ist es denn nach lösbar, dass ich meine datei gescheit renamen kann, um das überschreiben von vorhandenen vorzubeugen, _ohne_ dass das .jpg bzw. .gif am ende des dateinamens verloren geht ?

gruß
Lithium
lithium ist offline  
Alt 12.10.2008, 02:49  
Erfahrener Benutzer
 
Registriert seit: 28.09.2008
Beiträge: 1.168
PHP-Kenntnisse:
Fortgeschritten
Koala befindet sich auf einem aufstrebenden Ast
Standard

es gibt ja file_exists:
PHP: file_exists - Manual
Koala ist offline  
Alt 12.10.2008, 03:06  
Benutzer
 
Registriert seit: 04.08.2008
Beiträge: 67
PHP-Kenntnisse:
Fortgeschritten
lithium befindet sich auf einem aufstrebenden Ast
Standard

Habs nun anderweitig gelöst:

PHP-Code:
            if($_FILES['datei']['size'] <  30240)
                  {
                      
$path "xxx/images/avatars/";
                      
move_uploaded_file($_FILES['datei']['tmp_name'], $path.$_FILES['datei']['name']);
                    
rename($path.$_FILES['datei']['name'], $path.$_POST['endname'].$_FILES['datei']['name']);

                      echo 
'Avatar wurde erfolgreich hochgeladen.';

                      
$sql "UPDATE
                                  adminuser
                            SET
                                  avatar = '"
.$_POST['endname'].$_FILES['datei']['name']."'
                              WHERE
                                  ID = '"
.$auth['0']."'";

                      
mysql_query($sql) OR die(mysql_error());

                  } 
Gruß,
Lithium
lithium ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
datei upload und per email senden PHP-Fortgeschrittene 14 03.11.2011 14:35
datei upload problem thecracked PHP Tipps 2008 5 11.07.2008 06:23
Datei Upload mit curl? R.E.M. PHP Tipps 2006 1 18.09.2006 20:44
Wo bleibt die temporäre Datei beim Upload ggfan PHP Tipps 2006 5 31.03.2006 23:45
Datei Upload sammt Dateisplittung PHP Tipps 2007 4 09.12.2005 12:08
Datei Upload sammt Dateisplittung PHP Tipps 2007 1 09.12.2005 11:36
Datei nach Upload umbennen PHP Tipps 2005-2 6 03.08.2005 16:05
Problem mit Datei upload PHP Tipps 2005 16 24.03.2005 00:23
Probleme mit Datei Upload PHP Tipps 2004-2 2 28.11.2004 16:37
[Erledigt] Problem mit Datei Upload Server, Hosting und Workstations 6 06.09.2004 04:58
datei upload => datei anzeigen PHP Tipps 2004 16 05.08.2004 02:02
Nach datei Upload den namen der datei in DB speichern?? PHP Tipps 2004 14 17.07.2004 15:38
[Erledigt] altes neues problem von datei upload!!! PHP Tipps 2004 3 28.06.2004 19:06
wenn ihr datei upload habt? wo habt ihr webspace? PHP Tipps 2004 6 18.06.2004 20:23
Datei Upload mit PHP - Probleme PHP Tipps 2004 12 04.06.2004 12:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2008/48074-datei-upload-mit-rename.html, php file rename, php datei hochladen und umbenennen, rename php, rename php upload image, php upload rename file, php upload and rename file, php upload file rename, php upload rename, php upload and rename, php datei upload umbenennen, php avatar dateiupload, move_uploaded_file random name, formular bild hochladen umbenennen, rename php überschreiben, change name upload php, html php upload-file umbenenne, php upload rename image, php uploader mit rename, php upload file script rename file

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum