Bilder Upload + Datum oder Uhrzeit

Sonorc

Grünschnabel
Hallo,
Ich habe hier ein kleinen script womit ich die Bilder in 2 Ordner uploade.
Jetzt ist mein Problem, dass die Bilder überschrieben werden, wenn sie den selben namen haben.
Kann mir einer sagen was ich genau machen muss damit eine uhrzeit + datum hinter bild_datum_zeit.jpg kommt?

mfg
Simon

PHP:
<form enctype="multipart/form-data" action="#" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000">
Send this file: <br>
<input name="userfile" type="file"><br>
<input type="submit" name="senden" value="upload">
</form>


<?php 

//Deklaration der gültigen mimetypen
$mimearray=array("image/jpg","image/gif", "image/jpeg", "image/pjpeg", "image/x-png", "image/png", "image/JPEG");

//Upload verzeichnis
$uploaddir = 'bilder/nightfist/thubs/';
$uploaddir = 'bilder/nightfist/';

//Prüfen ob Formular gesendet wurde
if($_POST['senden']==true){
	// Prüfung auf Gültigkeit des Vordeklarierten MimeTyps
	if(in_array($_FILES['userfile']['type'],$mimearray))
	{
		// dateiupload
		if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
	    	print "Datei ist gültig und wurde erfolgreich hochgeladen. <br>Debugginginfo:\n";
			print "<br>";
		    print "Name: ".$_FILES['userfile']['name']."<br>";
			print "Size: ".$_FILES['userfile']['size']."<br>";  			
			}else{
			// Fehler beim Dateiupload
			print "Fehler beim Dateiupload";
			}
	}else{
	//Fehlermeldung wenn Datei nicht den vordeklarierten MimeTypes entspricht
	print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']." <br>ist nicht für den Upload gesattet";
	}
}
?>
 
PHP:
$j = 0;
if(file_exists($pruefe))
{
    do
	{
	//$ziel = pfad wos hingehen soll								
                 $filepath = $ziel."copy".$j."_of_".$_FILES['userfile']['name'];
	$filename = "copy".$j."_of_".$_FILES['userfile']['name'];
	$status = file_exists($filepath);
	$j++;
	}
while($status);
 
PHP:
<?php  

//Deklaration der gültigen mimetypen 
$mimearray=array("image/jpg","image/gif", "image/jpeg", "image/pjpeg", "image/x-png", "image/png", "image/JPEG"); 

//Upload verzeichnis 
$uploaddir = 'bilder/nightfist/thubs/'; 
$uploaddir = 'bilder/nightfist/'; 

//Prüfen ob Formular gesendet wurde 
if($_POST['senden']==true){ 
    // Prüfung auf Gültigkeit des Vordeklarierten MimeTyps 
    if(in_array($_FILES['userfile']['type'],$mimearray)) 
    { 

$pruefe = $uploaddir.$_FILES['userfile']['name']; 
$j = 0; 
if(file_exists($pruefe)) 
{ 
    do 
    { 
    //$ziel = pfad wos hingehen soll                                 
                 $filepath = $uploaddir."copy".$j."_of_".$_FILES['userfile']['name']; 
    $filename = "copy".$j."_of_".$_FILES['userfile']['name']; 
    $status = file_exists($filepath); 
    $j++; 
    } 
while($status);  




        // dateiupload 
        if (move_uploaded_file($_FILES['userfile']['tmp_name'], $filepath )) { 
            print "Datei ist gültig und wurde erfolgreich hochgeladen. <br>Debugginginfo:\n"; 
            print "<br>"; 
            print "Name: ".$_FILES['userfile']['name']."<br>"; 
            print "Size: ".$_FILES['userfile']['size']."<br>";               
            }else{ 
            // Fehler beim Dateiupload 
            print "Fehler beim Dateiupload"; 
            } 
    }else{ 
    //Fehlermeldung wenn Datei nicht den vordeklarierten MimeTypes entspricht 
    print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']." <br>ist nicht für den Upload gesattet"; 
    } 
} 
?>


So muesset es gehen habs jetzt aber nicht ausprobiert...
 
kommt die Meldung
Parse error: syntax error, unexpected $end in /home/web916/public_html/drupal/galleryupload.php on line 53
 
Das ist wohlmöglich das "eigenartigste" Skript, das mir jemals zu Gesicht gekommen ist.
PHP:
<?php  
$mimearray=array("image/jpg","image/gif", "image/jpeg", "image/pjpeg", "image/x-png", "image/png", "image/JPEG"); 

$uploaddir = 'bilder/nightfist/thubs/'; 
$uploaddir = 'bilder/nightfist/'; 

if($_POST['senden'] == true){ // Wolle isset() oder !empty() kaufe?
  if(in_array($_FILES['userfile']['type'], $mimearray)){ 
    $pruefe = $uploaddir.$_FILES['userfile']['name']; 
    $j = 0; 
    if(file_exists($pruefe)){ 
      do{ 
        $filepath = $uploaddir."copy".$j."_of_".$_FILES['userfile']['name']; 
        $filename = "copy".$j."_of_".$_FILES['userfile']['name']; 
        $status = file_exists($filepath); 
        $j++; 
      }while($status);

      if(move_uploaded_file($_FILES['userfile']['tmp_name'], $filepath)){ 
        print "Datei ist gültig und wurde erfolgreich hochgeladen. <br>Debugginginfo:\n"; 
        print "<br>"; 
        print "Name: ".$_FILES['userfile']['name']."<br>"; 
        print "Size: ".$_FILES['userfile']['size']."<br>";               
      }else{ 
        print "Fehler beim Dateiupload"; 
      } 
    }else{ 
      print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']." <br>ist nicht für den Upload gesattet"; 
    }
  }
} 
?>
Viel Spaß damit.

EDIT: Sorry, das uneditierte Posting war etwas beleidigend.
 
Zuletzt bearbeitet:
Ich danke dir.
Jetzt meint er:

support.JPG - image/jpeg
ist nicht für den Upload gesattet

aber wen ich bei

$mimearray=array("image/jpg","image/gif", "image/jpeg", "image/pjpeg", "image/x-png", "image/png", "image/JPEG");

schaue, dann ist doch alles drin...
 
Hallo nochmal,
konnte nicht eher antworten, tut mir leid. Als ich im oberen Skript eine geschweifte Klammer eingesetzt habe, habe ich mich um eine Stelle vertan.

Berichtigt und etwas 'verbessert':
PHP:
<form enctype="multipart/form-data" action="#" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="3000000">
Send this file: <br>
<input name="userfile" type="file"><br>
<input type="submit" name="senden" value="upload">
</form>

<?php
$mimearray = array('image/jpg', 'image/gif', 'image/jpeg', 'image/pjpeg', 'image/x-png', 'image/png'); 

$uploaddir = './bilder/nightfist/thubs/'; //Wird eh überschrieben...
$uploaddir = './bilder/nightfist/'; 

if(isset($_POST['senden'])){
  if(in_array(strtolower($_FILES['userfile']['type']), $mimearray)){
    $pruefe = $uploaddir.$_FILES['userfile']['name'];
    $j = 0; 
    if(@file_exists($pruefe)){ 
      do{ 
        $filepath = $filepath."copy".$j."_of_".$_FILES['userfile']['name']; 
        $filename = "copy".$j."_of_".$_FILES['userfile']['name']; 
        $status = file_exists($filepath); 
        $j++; 
      }while($status);
    }else{
      $filepath = $uploaddir.$_FILES['userfile']['name'];
    }

    if(move_uploaded_file($_FILES['userfile']['tmp_name'], $filepath)){ 
      print "Datei ist gültig und wurde erfolgreich hochgeladen. <br>Debugginginfo:\n"; 
      print "<br>"; 
      print "Name: ".$_FILES['userfile']['name']."<br>"; 
      print "Size: ".$_FILES['userfile']['size']."<br>";               
    }else{ 
      print "Fehler beim Dateiupload"; 
    }

  }else{ 
      print $_FILES['userfile']['name']." - ".$_FILES['userfile']['type']." <br>ist nicht für den Upload gesattet"; 
  }
} 
?>




Und da ich denke, dass das kein gutes/ordentliches Verfahren ist (mit dem copy_of...), hier einmal eine noch weiter verbesserte Version deines Skriptes:
PHP:
<?php
  $mUseDebug     = 1;
  $mAllowedTypes = array('image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/gif', 'image/png', 'image/x-png');
  $mUseDirectory = './bilder/nightfist/';
?>

<html>
  <head>
    <title>Upload-Skript f&uuml;r Sonorc</title>
  </head>
  
  <body>
    <div style="text-align:center; font-size:20px;">Upload-Skript</div><br />
    <?php
      if(!empty($_FILES['pFile'])){
        if(in_array(strtolower($_FILES['pFile']['type']), $mAllowedTypes)){
          $mFileName = substr($_FILES['pFile']['name'], 0, strrpos($_FILES['pFile']['name'], '.'));
          $mFileExt  = substr(strrchr($_FILES['pFile']['name'], "."), 0);
          $mFullURI  = $mUseDirectory.$_FILES['pFile']['name'];
        
          if(file_exists($mFullURI)){
            $mInt = 1;
            $mFullURI = $mUseDirectory.$mFileName."(".$mInt.")".$mFileExt;
            while(file_exists($mFullURI)){
              $mInt++;
              $mFullURI = $mUseDirectory.$mFileName."(".$mInt.")".$mFileExt;
            }
          }
          
          if(move_uploaded_file($_FILES['pFile']['tmp_name'], $mFullURI)){
            echo("<b style=\"text-align:center; color:#00C900\">Datei hochgeladen</b><br />\n");
            echo("    <a href=\"".$mFullURI."\">*KLICK*</a><br />\n");
            if($mUseDebug != 0){
              echo("    <table>\n".
                   "      <tr>\n".
                   "        <td>Name</td>\n".
                   "        <td>".$_FILES['pFile']['name']."</td>\n".
                   "      </tr>\n".
                   "      <tr>\n".
                   "        <td>Gr&ouml;&szlig;e</td>\n".
                   "        <td>".$_FILES['pFile']['size']."</td>\n".
                   "      </tr>\n".
                   "      <tr>\n".
                   "        <td>Typ</td>\n".
                   "        <td>".$_FILES['pFile']['type']."</td>\n".
                   "      </tr>\n".
                   "    </table>\n");
            }
          }else{
            echo("<b style=\"text-align:center; color:#C90000\">Bearbeitungsfehler</b><br />\n");
            if($mUseDebug != 0){
              echo("    &Uuml;berpr&uuml;fe Berechtigungen<br />");
            }
          }
        }else{
          echo("<b style=\"text-align:center; color:#C90000\">Unerlaubter Dateityp</b><br />\n");
          if($mUseDebug != 0){
            echo("    Die Datei \"".$_FILES['pFile']['name']."\" ist vom Typ ".$_FILES['pFile']['type']."<br />\n");
          }
        }
      }
    ?>
    <br />
    <form enctype="multipart/form-data" action="#" method="post">
      <strong>W&auml;hle deine Datei:</strong><br />
      <input type="file"   name="pFile" /><br />
      <input type="hidden" name="MAX_FILE_SIZE" value="3000000" />
      <input type="submit" name="pSend" value="Hochladen!" /><br />
    </form>
  </body>
</html>
Das hängt einfach eine Zahl in Klammern an den Dateinamen, falls dieser schon vorhanden ist.
Außerdem würde ich dir raten eine kleine IP Sperre zu implementieren.
Ich gebe dir auch gerne Support via MSN/WLM, da antworte ich auch schneller. :P
Cu.

EDIT: Erst jetzt ist mir aufgefallen, dass du vor hattest das Datum und die Uhrzeit anzuhängen.
Davon halte ich nicht viel, da es, je nach dem wie gut deine Seite besucht wird, sein kann, dass zwei Uploads in der selben Sekunde geschehen.
Unwahrscheinlich, aber prinzipiell möglich (AFAIK).
Überleg es dir nochmal, ob du nicht lieber bei meiner Möglichkeit bleibst.
 
Zuletzt bearbeitet:
Hallo,
bitte makiere das Thema doch als Erledigt, damit andere User sehen, dass es kein Problem mehr hier gibt und sie die Lösung schneller finden. :rolleyes:
 
Zurück