Datei umbennen in zahlen

Wolf of Doom

Erfahrenes Mitglied
HI

ich probiere schon seit einer std die kacke zum laufen zu bringen aber es geht ned.
also es handelt sich um ein uploadscript das den datei namen in eine zahl umwandeln soll wenn die zahl schon vorhanden ist dann soll die variable 1 hochzählen, aber das geht nicht überschreibt immer die files im folder

PHP:
    if(eregi("(php|php3|txt|htm|html)$",$name)) { 
    if($size<10000 AND $size!=0) { 
$i=1;
while (file_exists("./board/cs".$i.".php")) {
  $i++;
copy($bild,"/usr/local/apache/www/web43/html/board/cs/".$i.".php");
}
 
PHP:
$i=1;

while (file_exists("./board/cs".$i.".php")) {
  $i++;
}

copy($bild,"/usr/local/apache/www/web43/html/board/cs/".$i.".php");
copy-Anweisung aus der while-Schleife rausziehen...
 
Hi

leider funkt das immer noch ned :(
ich poste einfach mal den gesamten code so is die fehlersuche einfacher
PHP:
 <?
 if($was=="doit") { 
    $size = $bild_size; // Größe der Datei     
    $name = $bild_name; // Der Originalname    
    $type = $bild_type; // Der MIME Type der Datei 


    if(eregi("(php|php3|txt|htm|html)$",$name)) { 
    if($size<10000 AND $size!=0) { 

$i=1;while
 (file_exists($name,"./usr/local/apache/www/web43/html/board/cs/".$i.".php")) 
{
  $i++;
}
copy($bild,"/usr/local/apache/www/web43/html/board/cs/".$i.".php");


      echo "<font face = 'verdana' size = '1' color='#000000'>";
      echo "Die Datei erfolgreich hochgeladen.<br>"; 
      echo "Größe: ".$size." Byte<br>"; 
      echo "Name: ".$name."<br>";
      echo "MIME-Type: ".$type."<br>";
      echo "Ansehen: <a href=/cs/".$i.".php>".$name."</a></font>";  
    } else { 
      echo "<font face = 'verdana' size='1' color='#000000'>Ihre Datei ist über 10 KB oder gleich 0</font>";  
    } 
    } else { 
    echo "<font face = 'verdana' size='1' color='#000000'>Falsche Erweiterung</font>: ".$name; 
    } 

  } else { 
    echo "<font face = 'verdana' size='1' color='#000000'>";
    echo "<form action='".$PHP_SELF."' enctype=\"multipart/form-data\" method='post'>"; 
    echo "<input type='hidden' name='was' value='doit'>"; 
    echo "<table>"; 
    echo "<tr>"; 
      echo "<td>Datei</td>"; 
      echo "<td><input type='file' name=bild></td>"; 
    echo "</tr><tr>"; 
      echo "<td> </td>"; 
      echo "<td><input type='submit' value='Hochladen'></td>"; 
    echo "</tr>"; 
    echo "</form></table></font>"; 
  } 
?>
 
timestamp

Hi,

du könntest die Bilder umbenennen und zwar in den "timestamp" + Endung.

Somit kannst du gewährleisten, das jedes File nen anderen Namen hat.

PHP:
$x= time();
$filename = $x.".php";

$path = "/usr/local/apache/www/web43/html/board/cs/";
copy($bild, $path.$filename);

Hab's nicht getestet ...

mfg
 
ich vermisse einen slash bei der überprüfung des files
PHP:
while (file_exists("./board/cs".$i.".php")) {

nachher
PHP:
while (file_exists("./board/cs/".$i.".php")) {

greetz bloddy (der erste ansatz war schon der richtige)
 
PHP:
while (file_exists("./board/cs/".$i.".php")) {

überlege doch einmal den sinn dieses statements...solange das file existiert, zähle i 1 hoch und lege die datei mit dem hochgezählten wert an (es müßten also alle dateien überschrieben werden, die größer als 2.php sind)


so hier würde es schon eher sinn machen:
PHP:
$i=1;
while (file_exists("./board/cs/".$i.".php")) {
  $i++;
}
copy($bild,"/usr/local/apache/www/web43/html/board/cs/".$i.".php");

wenn die schleife (while) durch ist, besitzt i in jedem fall einen noch nicht besetzten wert und anschließend wird die datei angelegt.

bye bloddy
 
Zurück