Uploaden mit mehreren Feldern ( Fehler )

Also bei mir hats funktioniert. Ich bin leider bis am Abend in der Schule, und hier kann ich nichts testen, aber sobald ich am Abend Zeit habe, werde ich es zu Hause nochmal ausprobieren!

Lg
 
Schönen Abend,

also ich hab's nochmal ausprobiert, und es funktioniert nach wie vor. Hast du die LEERE "count.txt" mit Schreibrechten (0666 oder 0777) erstellt? Hast du das richtige Uploadverzeichnis angegeben/angelegt und mit 0777 belegt?

Lg
 
Ja ich habe den Upload Ordner und die Count Datei auf 777
Habe gerade auch gesehen das die Cont datei ein wort schon abgespeichert hat, nur es wird kein neues Wort mehr für den gleichen Namen erstellt. immer der gleiche
Dateiname bereits vorhanden! Die Datei wurde unter Evenzo_.gif abgespeichert!

Hier der Cod den ich habe;
PHP:
<?php
$upload_dir = $_SERVER['DOCUMENT_ROOT'].'/upload/';
if (isset($_FILES['datei']))
{
    if(is_uploaded_file($_FILES['datei']['tmp_name']))
    {
        $datei = $upload_dir.$_FILES['datei']['name'];
        $dateiname = $_FILES['datei']['name'];
        if(file_exists($datei))
        {    
            $file = "count.txt";
            $fp = fopen($file,"r");
            $count = fread($fp,filesize($file));
            fclose($fp);
            $help = explode("|",$count);
            $lastFileName = $help[1];    
            if($dateiname == $lastFileName)
            {
                $dateiname = explode(".",$_FILES['datei']['name']);
                $addedNum = getCount();
                incCount($addedNum);
                $dateiname[0] .= $addedNum.".";
                $datei = $upload_dir.$dateiname[0].$dateiname[1]; 
                $filename = $dateiname[0].$dateiname[1];
                echo '<span style="color:red">Dateiname bereits vorhanden!</span> Die Datei wurde unter '.$filename.' abgespeichert!';  
            } else {
                $file = "count.txt";
                $fp = fopen($file,"w");
                $offset = 0;
                for($i=1; $i<10; $i++)
                {
                    $dateiname = explode(".",$_FILES['datei']['name']);
                    $dateiname[0] .= "_".$i.".";
                    $dateiname = $upload_dir.$dateiname[0].$dateiname[1];                
                    if(file_exists($dateiname))
                    {
                        $offset = $i+1;
                    } else {
                        $i=101; //Einfach zum Zweck, dass man aus der Schleife kommt
                    }
                }
                if($offset == 0) 
                {
                    $name = "_1|".$_FILES['datei']['name'];
                    $datei = $_FILES['datei']['name'];
                } else {
                    $name = "_".$offset."|".$_FILES['datei']['name'];
                }
                fwrite($fp,$name);
                fclose($fp);
                $dateiname = explode(".",$_FILES['datei']['name']);
                $addedNum = getCount();
                incCount($addedNum);
                $dateiname[0] .= $addedNum.".";
                $datei = $upload_dir.$dateiname[0].$dateiname[1];
                $filename = $dateiname[0].$dateiname[1];
                echo '<span style="color:red">Dateiname bereits vorhanden!</span> Die Datei wurde unter '.$filename.' abgespeichert!';
            }
            
        } else {
            $file = "count.txt";
            $fp = fopen($file,"w");
            $name = "_1|".$_FILES['datei']['name'];
            fwrite($fp,$name);
            fclose($fp);
        }
        
        if (move_uploaded_file($_FILES['datei']['tmp_name'], $datei))
        {
            echo '<p>Upload erfolgreich</p>';
        }
    }
}

function getCount()
{
    $file = "count.txt";
    $fp = fopen($file,"r");
    $count = fread($fp,filesize($file));
    $count = explode("|",$count);
    fclose($fp);
    
    return $count[0];
}

function incCount($anz)
{
    $file = "count.txt";
    $count = substr($anz,1);
    $count++;
    $fp = fopen($file,"w");
    $name = "_".$count."|".$_FILES['datei']['name'];
    fwrite($fp,$name);
    fclose($fp);    
}
?>
 
Ohne das ich eure nette Unterhaltung störe ;) :
Ich würde für jede Datei einen Eintrag in der Datenbank machen, dann kann man auch kucken, ob der Name schon vergeben ist.

cya,
swffilms

P.S.:
Das mit der Datenbank hat den Vorteil, dass man alle Daten darin einfach speichern und abrufen kann.
Wenn nur die Dateien existieren, muss man immer die Datei mit einem kompletten Script überprufen.
(Das wäre dann die Meinung meiner Wenigkeit ;) )
 
Mit der Datenbank ist das schwierige das ich davon garkeine Ahnung habe,
@Dörti.Hermi; Kann man es leichter und erfolgreicher mit einer Datenbank machen? In meinen Strato Paket habe ich einen MySQL 5.0 Datenbank. Kenne mich aber garnicht damit aus.
 
Bekomme es uch so weiter nicht hin. Kann man denn nach der 2 Änderung eine Fehlermeldung mit der Meldung das der Name geändert werden muss.
 
In der Datenbank würdest du nur die Namen ablegen und er würde prüfen ob der Name schon vorhanden ist.

Ich verstehe gerade nicht ganz wo du noch eine Fehlermeldung haben möchtest?
Es sind doch schon 2 vorhanden, die kannst du doch kopieren und dort einbauen wo du noch mal eine brauchst.
 
Ich wollte es jetzt einfach machen und einfach ne Fehlermeldung rausgeben das die Datei nach dem 2 Namen ( also z.b. wenn es schon evanzo.gif und evanzo2.gif gibt ) danach eine Fehlermeldung machen.

Dann habe ich bemerkt, wie mir ja auch geschrieben wurde, das die Ergebniss Seite keine "_" , "%" und ähnliches annimmt, kann man das noch hinbekommen, oder zumindestens dann den Upload abbrechen mit einer Fehlermeldung? ( Zzt. werden die Dateien richtig hochgeladen aber auf der Ergebniss Seite nicht angezeigt )
 
Wollte mal nett fragen ob hier jemand noch Lösungen bei diesen Problemen hat. Denn dies sind noch die einzigsten der rest funktioniert perfekt.
 
PHP:
 for($i=1; $i<10; $i++)
                {

danach einfach mit if($i==3) abbrechen und Fehler ausgeben.

Bei deinem anderem Problem kann ich dir nicht helfen, da ich nicht verstehe wieso eine webseite kein "_" anzeigen kann.
 
Zurück