php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 07.09.2005, 16:30  
patr1k
Gast
 
Beiträge: n/a
Standard Eideutiger Dateiname - Upload per Formular

Hallo,

gleich noch eine Frage. Man kann über ein Formular Bilder hochladen, diese werden alle im gleichen Verzeichnis gespeichert. Die Dateien sollten allerdings nicht ihren Originalnamen behalten sondern einen eindeutigen Namen zugewiesen kriegen (damit Dateien nicht überschrieben werden, falls jemand eine Datei mit gleichem Namen hochlädt).

Wie kann ich das am besten lösen? Einfach eine 10 stellige Zahl generieren und die als Dateinamen nehmen oder gibt es bessere Lösungen? Die Funktion 'tempnam' kann man dafür doch sicher nicht gebrauchen (handelt sich ja um einen Upload über ein Formular) oder?

Danke
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 07.09.2005, 16:35  
Gast
 
Beiträge: n/a
Standard

Die Datei einfach mit Timestamp als Name versehen.
 
Alt 07.09.2005, 16:36  
patr1k
Gast
 
Beiträge: n/a
Standard

da hätte man auch selber draufkommen können ... danke
 
Alt 07.09.2005, 16:38  
Gast
 
Beiträge: n/a
Standard

Was anders wäre mir jetzt auch nicht eingefallen, denn dann haste einen eindeutigen Namen und kannst zudem die Bilder noch sortieren und den Name als Upload-Datum benutzen.
Einfach vielfälltig
 
Alt 07.09.2005, 16:46  
Gast
 
Beiträge: n/a
Standard

also MD5 hashwert würde es bestimmt auch gehen ^^
 
Alt 07.09.2005, 18:36  
Gast
 
Beiträge: n/a
Standard

 
Alt 08.09.2005, 00:02  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Der timestamp ist insofern ungeeignet, da ja bei gleichzeitigen Zugriffen Daten verloren gehen. In diese Richtung wäre uniquid() angebracht.

Jedoch ist tempnam() der einfachste Weg. move_uploaded_file() überschreibt existierende Dateien. Also einfach mit tempnam() eine Datei erzeugen, den Namen entgegennehmen und mit move_uploaded_file() überschreiben.

Basti
Basti ist offline  
Alt 08.09.2005, 05:29  
Gast
 
Beiträge: n/a
Standard

Zitat:
Der timestamp ist insofern ungeeignet, da ja bei gleichzeitigen Zugriffen Daten verloren gehen
Aber nicht bei einen Upload, sehr unwahrscheinlich, jedenfalls ist mir sowas in den letzten 8 Jahren noch nicht vorgekommen.
 
Alt 08.09.2005, 08:30  
Erfahrener Benutzer
 
Registriert seit: 18.07.2004
Beiträge: 2.162
PHP-Kenntnisse:
Fortgeschritten
Basti
Standard

Zitat:
Zitat von CIX88
Zitat:
Der timestamp ist insofern ungeeignet, da ja bei gleichzeitigen Zugriffen Daten verloren gehen
Aber nicht bei einen Upload, sehr unwahrscheinlich, jedenfalls ist mir sowas in den letzten 8 Jahren noch nicht vorgekommen.
Da sind zwei paar Stiefel. Einmal die Tatsache, dass bei einem gleichzeitigen Zugriff definitiv eine gerade frisch hochgeladenene Datei von einer anderen überschrieben wird. Und zum Anderen die Wahrscheinlichkeit, wann das passieren wird bzw. die Erfahrung, wie lange das bisher nicht passiert ist.

Abgesehen davon, dass hier überhaupt keine Infos vorliegen, anhand derer man die Wahrscheinlichkeit eines Datenverlustes ausrechnen könnte, kann ich nur von der Heranehensweise abraten, hier auf eine derartige Methode zurückzugreifen, bei der man sich dann eben fragen muss, wie hoch das Risiko ist, dass sie mal nicht funktioniert. Das wäre dann vielleicht vertretbar, wenn dieser Weg einen entsprechend kleineren Umfang hätte, aber das ist hier nicht der Fall.

PHP-Code:
<?php
class DataBase
{
    public function 
__constrct()
    {
        if (
mt_rand(1,10000) == 42) throw new Exception('Pech gehabt');
        return 
$this->connect();
    }
}
?>
Dabei wäre dir doch auch nicht so wohl, oder?

Basti
Basti ist offline  
Alt 08.09.2005, 09:15  
Gast
 
Beiträge: n/a
Standard

Ach komm jetzt bitte nicht mit Datenverlustes etc. blabla ...
Man kann ja noch die Millisekunden zum Timestamp hinzufügen, zudem kann man prüfen ob die Datei schon vorhanden ist.

Macht doch keine Wissenschaft daraus.
 
 


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
PHP: Formular Generator Zergling-new Tutorials 16 06.07.2010 03:14
Formular - File Upload? Toby PHP Tipps 2008 12 16.11.2007 20:19
Wert aus Textfeld in neues Formular übernehmen (kein Submit) PsychoEagle HTML, Usability und Barrierefreiheit 9 02.01.2007 14:51
Datei Upload und Dateiname ändern Soese PHP Tipps 2006 10 11.10.2006 10:55
Formular mit Upload PHP Tipps 2006 18 22.05.2006 12:32
Ganzen Ordner samt Inhalt per Formular Upload [begraben] dethlef14 PHP Tipps 2005-2 3 20.10.2005 08:51
[Erledigt] Formular in Formular HTML, Usability und Barrierefreiheit 4 19.10.2005 12:18
Bilder Upload - Dateityp direkt im Formular festlegen ? Cyberbob_at_tot PHP Tipps 2005-2 17 03.08.2005 16:35
Datei Upload mittels html Formular auf tripod server PHP Tipps 2005 5 16.04.2005 08:36
Geld zu verdienen - Formular für Datei upload Beitragsarchiv 5 21.01.2005 08:06
[Erledigt] Daten in einem Formular ausgeben und ändern PHP Tipps 2004-2 7 07.12.2004 17:22
Dateipfad beim Upload via Formular PHP-Fortgeschrittene 6 28.10.2004 17:17
upload formular PHP Tipps 2004 5 26.07.2004 09:45
upload formular ?? PHP Tipps 2004 2 01.07.2004 20:53
upload ohne formular PHP Tipps 2004 16 29.06.2004 09:30

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
aktuelles datum und uhrzeit php, php upload datei nicht überschreiben, timestamp als dateiname php, php upload datei mit timestamp versehen, formular dateiname, bild mit datenamen upload, php upload eindeutuger dateiname, php upload dateien nicht-überschreiben, php upload timestamp filename, timestamp dateiname bilder upload, datei uploaden dateiname übernehmen, php datei upload dateiname ändern, @move_uploaded_file datei nicht überschreiben, dateiname bei upload behalten, php eindeutigen filename, php dateiname timestamp, php file upload timestamp, bessere upload formulare, php upload ohne überschreiben, bilder timestamp als dateiname

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:24 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.