php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.10.2011, 14:32  
Neuer Benutzer
 
Benutzerbild von SilverSurfer90
 
Registriert seit: 18.09.2011
Beiträge: 23
PHP-Kenntnisse:
Anfänger
SilverSurfer90 befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Einzigartiger Dateiname nach upload

Hi.
Ich hab ein Uploadscript bei dem die Dateinamen geändert werden sollen nach dem Upload. Im Moment benutz ich dafür die Funktion:
PHP-Code:
<?php
///************************************************************************
/// Diese Funktion gibt einen einmaligen Filetoken zurück
///************************************************************************
function GetFiletoken() {
    
// warscheinlich einmaligen Filetoken ermitteln
    
$token md5(date('h-i-s, j-m-y, it is w Day'));

    
    
// überprüfen ob keine andere Datei mit dem selbigen Dateinamen vorhanden ist
    
if (isTokenUsed($token)) { // FALSE - Token ist neu //TRUE - Token wird bereits benutzt
    
        // sollte dies der Fall sein wird die gleiche Funktion nocheinmal ausgeführt
        
$token GetFiletoken();
    }
    
    
// als letztes wird der Dateiname zurück gegeben
    
    
return $token;
}


///************************************************************************
/// Diese Funktion prüft ob der übergebene Filetoken unbenutzt ist
///************************************************************************
function isTokenUsed($token) {
   
//tmpResult definieren
   
$tmpResult FALSE;
   
   
// Verzeichnis Handel erstellen
   
$handle opendir("./images/"); 
   
   
// In einer Schleife das Verzeichnis durchluufen
   
while($file readdir($handle)) 
   {
         
// Den aktuell gefundenen Dateinamen ausgeben 
      
if (strstr($file,$token))
      {
          
$tmpResult TRUE;
      }
   } 
    
   
// Verzeichnis wieder schließen    
   
closedir($handle);        
   
   
// tmpResult zurückgeben
   
return $tmpResult;
}
?>
Allerdings hab ich zum einen das Gefühl das die Methode nicht sehr gut ist, da wenn die Anzahl der Dateien ziemlich hoch wird, so 50000, das viel Resourcen fressen könnte oder so.
Es kommt auch recht häufig vor das n Token vergeben is und des mehrmals durchrattert.
Und zum andern kommt dabei n ellenlanger Dateiname bei raus, ich hätt gern n kürzeren..

Darum wollt ich euch einfach mal fragen was denn so die beste Möglichkeit wäre sowas zu bewerkstelligen^^
Jetz nur nich unbedingt gleich mit ner Datenbank^^'
__________________
~MfG SilverSurver90
SilverSurfer90 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 16.10.2011, 14:44  
Erfahrener Benutzer
 
Registriert seit: 04.08.2010
Beiträge: 287
PHP-Kenntnisse:
Fortgeschritten
zwutz wird schon bald berühmt werden
Standard

uniqid
zwutz ist offline   Mit Zitat antworten
Alt 16.10.2011, 20:43  
Neuer Benutzer
 
Benutzerbild von SilverSurfer90
 
Registriert seit: 18.09.2011
Beiträge: 23
PHP-Kenntnisse:
Anfänger
SilverSurfer90 befindet sich auf einem aufstrebenden Ast
Standard

Wow, funzt gut thx^^
Echt kurz, klasse
__________________
~MfG SilverSurver90
SilverSurfer90 ist offline   Mit Zitat antworten
Alt 17.10.2011, 01:36  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Oder du hashed das file was da hochgeladen wurde, so kannst du identifizieren ob dubletten vorhanden sind wärend des upload prozesses.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 17.10.2011, 11:29  
Neuer Benutzer
 
Benutzerbild von SilverSurfer90
 
Registriert seit: 18.09.2011
Beiträge: 23
PHP-Kenntnisse:
Anfänger
SilverSurfer90 befindet sich auf einem aufstrebenden Ast
Standard

Klingt auch interessant :3
Wie lang wär dann so ein Dateiname? Und wie wahrscheinlich ist es das zwei Dateien den gleichen Hash haben?
Und wie wär das am besten umsetzbar?^^
__________________
~MfG SilverSurver90
SilverSurfer90 ist offline   Mit Zitat antworten
Alt 17.10.2011, 11:43  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von SilverSurfer90 Beitrag anzeigen
Klingt auch interessant :3
Wie lang wär dann so ein Dateiname? Und wie wahrscheinlich ist es das zwei Dateien den gleichen Hash haben?
Und wie wär das am besten umsetzbar?^^
du könntest ja sowas machen wie

PHP-Code:
$token md5_file($dateiname);

function 
checkExistingFile(){
  
$handle opendir("./images/"); 
while(
$file readdir($handle)) 
   {
      if (
if_file($file) && md5_file($file) != $token //wenn das was im Ordner drin eine Datei ist und der md5 wert der Datei nicht der upgeloadeten Datei entspricht
      
{
           
move_uploaded_file(); //lade datei hoch und datei enveutell umbenenn
      
}
   } 

EDIT: es gibt auch noch die sha1_file funktion, ich glaube sie eindeutiger, habe mal irgendwo gelesen dass MD5 hashes übereinstimmen könnten bei unterschiedlichen strings,trotz geringer wahrscheinlichkeit
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen

Geändert von BlackScorp (17.10.2011 um 11:54 Uhr).
BlackScorp ist offline   Mit Zitat antworten
Alt 17.10.2011, 13:58  
Neuer Benutzer
 
Benutzerbild von SilverSurfer90
 
Registriert seit: 18.09.2011
Beiträge: 23
PHP-Kenntnisse:
Anfänger
SilverSurfer90 befindet sich auf einem aufstrebenden Ast
Standard

Das könnt man gut ausbauen, das zb der Link des bereits hochgeladenen Bildes einfach ausgegeben wird :3
Aber fraglich wie einzigartig der Hash halt ist..
Und die Funktion die alle Dateien im Ordner prüft frisst wieder Ressourcen oder?
__________________
~MfG SilverSurver90
SilverSurfer90 ist offline   Mit Zitat antworten
Alt 17.10.2011, 14:04  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

solange du keine 133mghz kiste als "Server" nutzt, sollte das Kein Problem sein alternativ könntest du ja beim hochladen der datei eine .txt datei mit dem hash erstellen, so dass du nicht in der schleife jede hochgeladene datei mit md5_file drüber geben musst. jedoch wird es dann schwierig beim umbenenn der datei, da du auch die txt datei mit umbenen müsstest.

PHP-Code:

 
if(!is_file('./tmp_token/'.$token.'.txt')){ //wenn datei im tmp_token nich vorhanden ist
 
move_uploaded_file(); //lade datei hoch und datei enveutell umbenenn
           
file_put_contents($token.'txt',''); //erstelle eine tmp datei

dann müsstest du kein open dir machen und jede datei durchsuchen usw..
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Alt 17.10.2011, 14:21  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Jeder Hash produziert Kollisionen.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 17.10.2011, 14:36  
Erfahrener Benutzer
 
Registriert seit: 25.09.2009
Beiträge: 2.114
PHP-Kenntnisse:
Fortgeschritten
BlackScorp wird schon bald berühmt werdenBlackScorp wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Jeder Hash produziert Kollisionen.
dann prüft man eben ganz normal nach dateinamen und falls 2 dateinamen identisch sind, hängt man etwas dran wie -kopie(1) oder sowas
__________________
Mein kleines Projekt
-Cruel Online-
5 von 3 Leuten können kein Bruchrechnen
BlackScorp ist offline   Mit Zitat antworten
Antwort


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
Dateiname nach oder bei Upload aendern Trawell PHP Einsteiger 3 01.10.2011 18:03
Upload - Dateiname aus Textfeld ruur PHP Einsteiger 3 23.09.2011 16:20
HTTP Request (Upload von Daten) + Login (Cookie) Smut PHP Tipps 2010 3 24.10.2010 14:50
Dateiname Uploaden mit ' (Apostroph) im Dateiname acelab PHP Tipps 2010 4 04.02.2010 20:31
Please enable javascript to upload multiple files? Kocgiri PHP Tipps 2009 3 23.12.2009 23:47
Namen ändern beim Upload Benshy PHP Tipps 2009 1 13.11.2009 16:51
Datei Upload mit Statusanzeige Flokle PHP Tipps 2009 5 29.09.2009 17:49
Problem beim Upload von Dateien per FTP ererbus PHP-Fortgeschrittene 4 11.06.2009 22:56
Upload Script + Multible Server cyberstorm PHP Tipps 2006 5 11.10.2006 19:43
Datei Upload und Dateiname ändern Soese PHP Tipps 2006 10 11.10.2006 10:55
Eideutiger Dateiname - Upload per Formular patr1k PHP Tipps 2005-2 10 08.09.2005 10:24
Ansichtsproblem beim Upload Off-Topic Diskussionen 2 17.04.2005 21:11
Ich bin auf der Suche nach einem fertigen Menü Upload Script Beitragsarchiv 7 22.08.2004 18:53
[Erledigt] Wie erstelle ich ein Upload Menü mit mehreren Menüpunkten ? PHP Tipps 2004 3 22.08.2004 14:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php einzigartiger dateiname, dateinamen token, hochgeladene dateiname php, zend datei upload dateiname vergeben, php einmaliger dateinamen, php upload filename ausgeben, php dateiname nach upload auflisten

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