php.de

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

 
 
LinkBack Themen-Optionen
Alt 08.10.2008, 13:26  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 5
yourdaydream befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] File Upload: Unter anderem Namen speichern

Hallo,

ich brauch mal wieder eure Hilfe.
Ich hab ein Skript im Internet gefunden und es funktioniert (GSD!)
Ich lade eine Datei über PHP hoch und zuletzt kopiere ich es folgendermassen (das ist auch noch aus dem Original-Skript):

PHP-Code:
if(copy($_FILES["file"]["tmp_name"], $_FILES["file"]["name"])) {
echo 
"Datei erfolgreich hochgeladen!<br>";
}
else {
echo 
"Datei konnte nicht hochgeladen werden.";

Statt $_FILES["file"]["name"] hätte ich jetzt aber gerne einen anderen Dateinamen (nämlich die Variable $id), jedoch mit der richtigen Endung, die da jpg, jpeg, gif, bmp und png lauten könnte.

Ich hab's schon getestet, indem ich $id.".gif" anstelle $_FILES["file"]["name"] verwendet habe, und es funktioniert - aber es musste halt ein gif sein

Wenn nun die Länge der Dateierweiterung immer gleich wäre, würde ich vielleicht so vorgehen:
PHP-Code:
$len strlen($_FILES["file"]["name"] )-4;
$erw substr($_FILES["file"]["name"] ,$len,4
und dann den Dateinamen mit $id.$erw angeben, aber ich hab ja noch das jpeg, ich glaub, ich blick nicht mehr durch.

Ich such schon so lange nach ner Lösung und hab auch preg_match() gefunden, was mir vielleicht helfen würde, wenn ich die Syntax begreifen würde. Aber ich glaube, mit meinem Anfängerwissen blick ich da nicht durch und mein schönes Anfängerbuch sagt dazu gar nix.

Ich brauche also einen Hinweis, wie ich von $_FILES["file"]["name"] den letzten Punkt im String mit den letzten drei bzw. vier Buchstaben abfragen kann.

Danke
Uli
__________________
yourdaydream ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 08.10.2008, 13:35  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.853
HPR1974 wird schon bald berühmt werden
Standard

der typ steht in $_FILES['file']['type'] diesen wert kannst Du dann einer extension zuordnen
HPR1974 ist offline  
Alt 08.10.2008, 13:37  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 4.028
lazydog befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$parts explode('.'$_FILES["file"]["name"]);
$ext $parts[count($parts) - 1];
if(
move_uploaded_file($_FILES["file"]["tmp_name"], "$id.$ext")) {
    echo 
"Datei erfolgreich hochgeladen!<br />";
}
else {
    echo 
"Datei konnte nicht hochgeladen werden.";

__________________
Gruss
L
lazydog ist offline  
Alt 08.10.2008, 13:46  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.853
HPR1974 wird schon bald berühmt werden
Standard

naja ich würde der extension im dateinamen erstmal nicht glauben...
HPR1974 ist offline  
Alt 08.10.2008, 13:47  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 5
yourdaydream befindet sich auf einem aufstrebenden Ast
Standard

Wow, danke, ihr seid ja schnell.
Doch mir ist noch was anderes eingefallen (ich hab das Gefühl, sobald ich mein Problem mal schriftlich fixiert habe, bin ich danach so entspannt, dass mir prompt was dazu einfällt, auf das ich vorher nicht gekommen bin):

PHP-Code:
$len strlen($_FILES["file"]["name"] )-5;
$erw substr($_FILES["file"]["name"] ,$len,5);
$erw strstr($erw,"."); 
Obwohl das nicht viel anders aussieht als das, was ich vorher schon hatte
Aber mehr als 4 Buchstaben nach dem Komma können ja nicht kommen, also sollte es so klappen!

EDIT
@HPR1974
Warum der Extension nicht glauben?
__________________

Geändert von yourdaydream (08.10.2008 um 13:49 Uhr). Grund: Die Frage drängte sich mir auf...
yourdaydream ist offline  
Alt 08.10.2008, 13:59  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 4.028
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von HPR1974 Beitrag anzeigen
naja ich würde der extension im dateinamen erstmal nicht glauben...
Genausowenig wie dem, was in $_FILES['file']['type'] steht, das wird offensichtlich auch aus der Extension gebildet. Wenn ich die gleiche Datei unter drei verschiedenen Extensions (class/gif/java) hochlade (es handelt sich um eine Java-Source-Datei) erhalte ich für diese die Typen «application/octet-stream», «image/gif» und «text/x-java».

@yourdaydream
Ich denke, die Version mit explode() ist doch etwas eleganter, und v.a. nicht auf eine bestimmte Länge fixiert.
__________________
Gruss
L
lazydog ist offline  
Alt 08.10.2008, 14:49  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.853
HPR1974 wird schon bald berühmt werden
Standard

hm, ich bekomme immer den gleichen file type egal welche extension ich meiner Datei anhänge.
HPR1974 ist offline  
Alt 08.10.2008, 15:13  
Erfahrener Benutzer
 
Registriert seit: 02.04.2008
Beiträge: 4.028
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von HPR1974 Beitrag anzeigen
hm, ich bekomme immer den gleichen file type egal welche extension ich meiner Datei anhänge.
Hab grad mal ein paar Versuche gemacht. Das Ganze schein nicht nur Browser- sondern auch (Client)-OS-abhängig zu sein. Das vorher genannte Verhalten haben Firefox, Seamonkey und Konqueror unter Linux (Centos 5/64), Opera bringt dort «application/octet-stream», «image/gif» und «application/octet-stream».
Unter Windoof liefert Firefox dasselbe, wie Opera unter Linux. Und der IE einfach drei mal «text/plain».
Auf jeden Fall sind es keine verlässlichen Angaben.
__________________
Gruss
L

Geändert von lazydog (09.10.2008 um 13:30 Uhr).
lazydog ist offline  
Alt 08.10.2008, 16:46  
7Style
Gast
 
Beiträge: n/a
Standard

ZITAT PHP.NET MANBUEL

PHP-Code:
  <?php

$path_parts 
pathinfo("/www/htdocs/index.html");

echo 
$path_parts["dirname"] . "\n";
echo 
$path_parts["basename"] . "\n";
echo 
$path_parts["extension"] . "\n";

?>
ergebnis :

Code:
    [dirname] => /www/htdocs
    [basename] => index.html
    [extension] => html
    [filename] => index
 
Alt 09.10.2008, 08:32  
Neuer Benutzer
 
Registriert seit: 26.06.2008
Beiträge: 5
yourdaydream befindet sich auf einem aufstrebenden Ast
Standard

Danke @7Style!
Manchmal weiß man einfach nicht wonach man sucht, aber das klingt so einfach, ich nehm das jetzt! (und werd's in Zukunft auch noch brauchen!!)
VG Ulrike
__________________
yourdaydream ist offline  
 


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mit php dynamisch Namen von Bildnamen sowie Pfad in mysql Datenbank speichern mallmis PHP Tipps 2008 1 19.11.2007 23:04
Formular - File Upload? Toby PHP Tipps 2008 12 16.11.2007 20:19
Problem mit File Upload b++ PHP Tipps 2006 2 26.04.2006 20:35
File Upload tomtaz PHP Tipps 2006 1 19.04.2006 14:58
file upload & bilder resize PHP Tipps 2006 3 15.02.2006 18:56
[Erledigt] File Upload mit mehreren Files PHP-Fortgeschrittene 16 16.01.2006 12:07
[Erledigt] File Upload Server, Hosting und Workstations 2 24.05.2005 17:07
update auf php 5.0.4 robo47 Server, Hosting und Workstations 6 10.04.2005 19:00
File upload / Ändern Datensatz Datenbanken 0 28.12.2004 15:40
file upload + und pic gleichzeitig verkleinern PHP Tipps 2004-2 3 16.12.2004 08:09
File upload PHP-Fortgeschrittene 3 23.08.2004 17:16
ausgefuehrtes php file als html speichern PHP Tipps 2004 8 28.07.2004 17:59
Nach datei Upload den namen der datei in DB speichern?? PHP Tipps 2004 14 17.07.2004 15:38
[Erledigt] File Upload: PRoblem mit Upload directory PHP Tipps 2004 3 26.06.2004 13:20
Speichern von Formular-Eingabe (html) in xml file mit PHP PHP Tipps 2004 1 11.06.2004 12:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php upload file mit gleichem namen, dateiupload php datei speichern, php bild hochladen aber unter anderem namen speichern, datei hochladen unter anderem namen, php datei mit anderem namen variablen hochladen, php datei unter bestimmtem namen speichern unter, php datei unter richtigem namen speichern, php file upload unter anderem namen speichern, $_files[\'datei\'][\'name\'] upload name in db schreiben variablen zuweisen, dateihochladen unter anderem namen, php datei mit bestimmtem namen hochladen, php bild unter anderem namen speichern, php dateiupload unter bestimmten namen speichern, datei hochladen und unter bestimmten namen speichern php, php fileupload und unter anderem namen speichern, bei fileupload dateinamen in datenbank speichern php tutorial, php _files unter anderem dateinamen speichern, php fileupload abfragen naem in variable speichern, php upload länge vom namen, angaben zur upload datei speichern php

Alle Zeitangaben in WEZ +1. Es ist jetzt 18:28 Uhr.




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