• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Dateiupload

Fabiii321

Mitglied
Hallo,
ich habe ein Frage zu einem Dateiupload.
Ich bin z.Z dran eine digitale Dokumentenverwaltung per Browser zu schreiben.
Ich habe ein Formular gemacht und habe dieses Formular auch zu einer Datenbank verbunden.
In diesem Formular ibt es ein Feld das heißt Datei(en).
Die Datenbank wird mit phpmyadmin verwaltet. (neue Version)

ICh will dass man im Formular seine Datei anklickt wenn man dann auf Absenden drückt wird Sie in der Tabelle hochgeladen.
In diese Tabelle werden auch Vorname, Nachname, AZ, Rechnungsnummer............ gesendet.

Ich habe des jetzt mal ausprobiert und es wird auch was gesendet allerdings in Textform. Also da steht dann wenn die Datei Leuchtturm.jpeg heist wir mir in der Tabelle Leuchtturm.jpeg angezeigt.
Ich will natürlich dass wenn man dann auch eine Abfrage macht, dass man dann draufklicken kann und die Datei wird gedownloadet.

Wie funktioniert sowas ???

Hier der Code des Formulars:
HTML:
<html>
    
    <head>
        <title>Eingabe</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Eingabe</h2>
            </div>
            
            <ul id="Navigation">
                <li><a href="index.html">Start</a></li>
                <li><a href="Eingabe.html">Eingabe</a></li>
                <li><a href="Ausgabe.html">Ausgabe</a></li>
                <li><a href="Hilfe.html">Hilfe</a></li>
            </ul>
          
             <div id="main">
                <h1>Eingabe Rechnungen</h1>
                
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                
                    <label for="Rechnungsnummer">Rechnungsnummer</label><br />
                    <input name="Rechnungsnummer" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="AZ">AZ</label><br />
                    <input name="AZ" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="Vorname">Vorname</label><br />
                    <input name="Vorname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Nachname">Nachname</label><br />
                    <input name="Nachname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Betrag">Betrag</label><br />
                    <input name="Betrag" type="text" class="Feld" size="8" maxlength="8">
                    
                    <br>
                    
                    <label for="Versanddatum">Versanddatum</label><br />
                    <input name="Versanddatum" type="text" class="Feld" size="10" maxlength="10">
                    
                    
                    
                    <label for="Bezahlt"></label><br />
                    <input type="radio" class="Radio" name="Bezahlt" value="bezahlt"> bezahlt<br>
                    <input type="radio" class="Radio" name="Bezahlt" value="nicht bezahlt"> nicht bezahlt
                    
                    <br>
                    
                    <label for="Datei">Datei(en)</label><br />
                    <input name="Datei" type="file" class="Feld" size="40" maxlength="100" multiple="multiple">
                    
                    <br>
                    
                    <label for="Kommentar">Kommentar</label><br />
                    <textarea name="Text" class="Bereich" rows="10" cols="50"></textarea>
                    
                    <br>
                    <br>
                    
                    <input type="submit" class="Button"/>
                    <input type="reset" class="Button"/>    
                </form>
            </div>
            
        </div>
    </body>
    
</html>

Und hier der Code der verarbeitenden php Datei:

PHP:
<h1>Eingabe</h1>

<?php
    $db_link=mysql_connect('localhost', 'fabiii9sql1', 'xxxxxxxxxx');
    if($db_link){
        mysql_select_db('fabiii9sql1', $db_link);
        echo "<p>Datenbankverbindung erfolgreich</p>";
    }
    else{
        echo(mysql_error($db_link));
    }
    
    
    $Rechnungsnummer = $_POST["Rechnungsnummer"];
    $AZ = $_POST["AZ"];
    $Vorname = $_POST["Vorname"];
    $Nachname = $_POST["Nachname"];
    $Betrag = $_POST["Betrag"];
    $Versanddatum = $_POST["Versanddatum"];
    $Bezahlt = $_POST["Bezahlt"];
    $Datei = $_POST["Datei"];
    $Kommentar = $_SPOST["Kommentar"];
    
    if($Nachname =="") {
        echo "Du hast nicht alle Felder ausgefüllt";}
        else {
    
    

$eintragen = mysql_query("
    INSERT INTO rechnungen (
        Rechnungsnummer, AZ, Vorname, Nachname, Betrag, Versanddatum, Bezahlt, Datei, Kommentar
    ) VALUES (
        '$Rechnungsnummer', '$AZ', '$Vorname', '$Nachname', '$Betrag', '$Versanddatum', '$Bezahlt', '$Datei', '$Kommentar')"
    ) or die (mysql_error());  
    
    if ($eintragen == true) {
    echo "Ihre Angaben wurden gespeichert";
    } else {
    echo "Fehler im System";
    }
    

    
    }
    
    
    
    
    mysql_close($db_link);
        

?>

Wie mach ich sowas ?
Geht sowas überhaupt ?

Bin um alle Tipps dankbar !!

Viele Grüße
Fabian
 
RE

Hallo,
vielen Dank für deine Antwort.

Hab das jetzt geänder.
IN phpmyadmin wird mir immernoch nur der Dateiname angezeigt.
Aber vielleicht gehört das auch so.

Wird durch diese Änderung dann die Datei angezeigt ??? Also ich will dann halt draufklicken können und die Datei öffnet sich.
Es sind eigentlich meistens eh nur pdf dateien.

Hier nochmal die Codes:

HTML:
<html>
    
    <head>
        <title>Eingabe</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Eingabe</h2>
            </div>
            
            <ul id="Navigation">
                <li><a href="index.html">Start</a></li>
                <li><a href="Eingabe.html">Eingabe</a></li>
                <li><a href="Ausgabe.html">Ausgabe</a></li>
                <li><a href="Hilfe.html">Hilfe</a></li>
            </ul>
          
             <div id="main">
                <h1>Eingabe Rechnungen</h1>
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                
                    <label for="Rechnungsnummer">Rechnungsnummer</label><br />
                    <input name="Rechnungsnummer" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="AZ">AZ</label><br />
                    <input name="AZ" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="Vorname">Vorname</label><br />
                    <input name="Vorname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Nachname">Nachname</label><br />
                    <input name="Nachname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Betrag">Betrag</label><br />
                    <input name="Betrag" type="text" class="Feld" size="8" maxlength="8">
                    
                    <br>
                    
                    <label for="Versanddatum">Versanddatum</label><br />
                    <input name="Versanddatum" type="text" class="Feld" size="10" maxlength="10">
                    
                    
                    
                    <label for="Bezahlt"></label><br />
                    <input type="radio" class="Radio" name="Bezahlt" value="bezahlt"> bezahlt<br>
                    <input type="radio" class="Radio" name="Bezahlt" value="nicht bezahlt"> nicht bezahlt
                    
                    <br>
                    
                    <label for="Datei">Datei(en)</label><br />
                    <input name="Datei" type="file" class="Feld" size="40" maxlength="100" multiple="multiple" enctype="multipart/form-data">
                    
                    <br>
                    
                    <label for="Kommentar">Kommentar</label><br />
                    <textarea name="Text" class="Bereich" rows="10" cols="50"></textarea>
                    
                    <br>
                    <br>
                    
                    <input type="submit" class="Button"/>
                    <input type="reset" class="Button"/>    
                </form>
            </div>
            
        </div>
    </body>
    
</html>

php Code

PHP:
<h1>Eingabe</h1>

<?php
    $db_link=mysql_connect('localhost', 'fabiii9sql1', 'xxxxxxxxx');
    if($db_link){
        mysql_select_db('fabiii9sql1', $db_link);
        echo "<p>Datenbankverbindung erfolgreich</p>";
    }
    else{
        echo(mysql_error($db_link));
    }
    
    
    $Rechnungsnummer = $_POST["Rechnungsnummer"];
    $AZ = $_POST["AZ"];
    $Vorname = $_POST["Vorname"];
    $Nachname = $_POST["Nachname"];
    $Betrag = $_POST["Betrag"];
    $Versanddatum = $_POST["Versanddatum"];
    $Bezahlt = $_POST["Bezahlt"];
    $Datei = $_POST["Datei"];
    $Kommentar = $_SPOST["Kommentar"];
    
    if($Nachname =="") {
        echo "Du hast nicht alle Felder ausgefüllt";}
        else {
    
    

$eintragen = mysql_query("
    INSERT INTO rechnungen (
        Rechnungsnummer, AZ, Vorname, Nachname, Betrag, Versanddatum, Bezahlt, Datei, Kommentar
    ) VALUES (
        '$Rechnungsnummer', '$AZ', '$Vorname', '$Nachname', '$Betrag', '$Versanddatum', '$Bezahlt', '$Datei', '$Kommentar')"
    ) or die (mysql_error());  
    
    if ($eintragen == true) {
    echo "Ihre Angaben wurden gespeichert";
    } else {
    echo "Fehler im System";
    }
    

    
    }
    
    
    
    
    mysql_close($db_link);
        

?>


Vielen Dank
Gruß
Fabian
 
Hallo,
ich habe heute den ganzen Tag gegooglet und habe gesehen dass man nicht die Datei in die Datenbank laden sollte sondern die Datei auf dem Server hochladen soll und dann nur den PFad in die DAtenbank speichert.

Wie macht man sowas hab nicht richtiges gefunden.

Vielen Dank für eure Bemühungen,
viele Grüße
Fabian
 
Wieso sollte man das so machen? Es ist deine Entscheidung was Du wie machst. Es wäre möglich einfach nur den Dateinamen in der Datenbank zu speichern (das bringt dir vermutlich nichts), den Pfad unter dem die Datei auf dem Server gespeichert wurde oder auch die Datei selbst. Was für dich optimal ist hängt von dem ab was Du vor hast.

Bei dir ist aktuell das Problem, dass Du die hochgeladene Datei gar nicht ausliest. Mit

PHP:
$Datei = $_POST["Datei"];

liest Du tatsächlich nur den Dateinamen aus der in dem Feld eingetragen wurde. Mehr nicht.

Wenn Du die Datei nun auf dem Server speichern und vlt. auch noch in eine Datenbank speichern willst, dann musst Du das $_FILES-Array dafür verwenden. Schau dir mal diese Anleitung an:
php-dummies.de - Tutorials - Praxis - File Upload - Das passende Formular

Oder auch im PHP-Manual (hatte ich oben bereits verlinkt):
PHP: Handling file uploads - Manual
 
Hallo,
vielen Dank für deine Antwort.
Ich kapier des irgendwie nicht ganz.
Ich weis dass man sowas nicht macht aber anhand dessen kann ich des dann genau nachvollziehen:

Könntest du mir mein Script so abändern dass es funktioniert ???

Wäre dir echt sehr, sehr dankbar.

Vielen Dank für deine Bemühungen !!!

PS: werde jetzt doch die Variante nehmen wo die Datei in die DB gespeichert wird.

Gruß
Fabi
 
Nein, kann ich nicht. Aber es gibt massenhaft Vorlagen die Du dir anschauen könntest. Nicht nur das o.g. Manual. Auch hier ist noch etwas:
PHP und MySQL: Bilder in Datenbank speichern

Weitere Scripte findest Du unter dem Suchbegriff "php datei in datenbank speichern".

Wenn Du jemanden beauftragen willst für dich die Arbeit zu übernehmen, wende dich an die Jobbörse.
 
Die Variante die Datei in der DB abzuspeichern würde sich weit aus komplexer gestalten, als den Pfad abzuspeichern. ( Zumindest für Anfänger )

Hier ein Code-Snippet, schau dir dazu am besten die Quelle genaustens an, selbst ich hab das erst durch einen Kollegen erfahren, obwohl ich das ansatzweise bereits gewusst hatte, aber mich noch nie beschäftigt habe damit.

PHP:
<?php
function data_uri($file, $mime) { 
   $contents = file_get_contents($file);
   $base64   = base64_encode($contents);
   return ('data:' . $mime . ';base64,' . $base64);}?>

<img src="<?php echo data_uri('elephant.png','image/png'); ?>" alt="Ein Elefant" />


Quelle: Data-URL

Im Prinzip speicherst du den Base64 Enkodierten Wert in die Datenbank und den "MIME-Typ", welcher beim Hochladen auch gespeichert wird in der $_FILES Variable.

Kleiner Hinweis falls du es nicht wusstest: Beim hochladen werden die Daten temporär auf dem Server gespeichert und werden danach automatisch gelöscht! Daher kannst du mit den Temporären Daten so arbeiten, als wären Sie auf dem Server vorhanden. ( Sind Sie sie für eine kurze Zeit ja auch )

Als Ergebnis bekommst du dann:
Code:
data: MIME-TYPE ;base64, BASE64-ENKODIERDTER WERT

z.B.:


[COLOR=#FF0000]data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAABlBMVEUAAAD///+l2Z/dAAAAM0lEQVR4nGP4/5/h/1+G/58ZDrAz3D/McH8yw83NDDeNGe4Ug9C9zwz3gVLMDA/A6P9/AFGGFyjOXZtQAAAAAElFTkSuQmCC
[/COLOR]

Diesen Wert kannst du einfach in das SRC-Attribut vom <img>-Tag einsetzen und bekommst das Bild.

<img src="data:image/png;base64,........QmCC" alt="Mein Bild">


__________________________________________________________________




Also klingt sehr Interessant das Verfahren für mich. Könnte echt spaß machen das durch zu gehen.Ich würde dir trotzdem empfehlen, die Daten auf dem Server zu speichern und dir einfach nur den Dateinamen plus einzigartigen Zusatz in der Datenbank zu speichern.

Z.B. BILDNAME_UNIX_TIMESTAMP.DATEIENDUNG

elephant_123595359.png
elephant_125146969.png
elephant_124164626.png
sexy_handtasche_124694959.png

Per "time()" Funktion bekommst du die Aktuelle Zeit im Unix-Timestamp Format.
Durch den Zusatz präventierst du doppelte Dateien die sich überschreiben.

Das erste Elefanten Foto muss nicht wie die anderen aussehen.
Jetzt suchst du dir einen Ordner dafür aus, z.B.

Images/Uploads/Useruploads
und

beim Auslesen, suchst du nach: Images/Uploads/Useruploads/DATEINAME

So musst du nicht den kompletten Pfad speichern, dass wäre Sinnfrei.

Informiere dich lieber gründlicher, ansonsten verstehst du es nicht und kannst es nicht umsetzen.
Es ist relativ einfach, man muss aber verstehen was genau man tut bzw. tun muss. Wenn man es versteht, kann man es sich relativ leicht zusammen setzen. Falls kein Lernbedarf vorhanden ist, dann würde ich die bequemere Alternative empfehlen, Geld gegen Zeit und Arbeit auszutauschen. Das würde in der Rubrik 'Jobbörse' geschehen.

Gruß

*edit*

Ja, sauber! Meine komplette Formatierung ist hinne -.-

Wird etwas dauern bis ich das wieder hingekriegt bekomme..
*/edit*

*edit2*

So.. hoffe es ist besser..

*/edit*
 
RE

Hallo,
vielen Dank für deine Antwort.
Dieser Link hat mir nochmal sehr geholfen.
ICh habe das jetzt in mein Script eingearbeitet und ausprobiert.
Es kommt die Fehlermeldung:
Unknown column 'Kommentar' in 'field list'
Weis nicht so recht was das heißt.

Hier die Scribte:
Was ist an denen falsch ?

HTML:
<html>
    
    <head>
        <title>Eingabe</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Eingabe</h2>
            </div>
            
            <ul id="Navigation">
                <li><a href="index.html">Start</a></li>
                <li><a href="Eingabe.html">Eingabe</a></li>
                <li><a href="Ausgabe.html">Ausgabe</a></li>
                <li><a href="Hilfe.html">Hilfe</a></li>
            </ul>
          
             <div id="main">
                <h1>Eingabe Rechnungen</h1>
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                
                    <label for="Rechnungsnummer">Rechnungsnummer</label><br />
                    <input name="Rechnungsnummer" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="AZ">AZ</label><br />
                    <input name="AZ" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="Vorname">Vorname</label><br />
                    <input name="Vorname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Nachname">Nachname</label><br />
                    <input name="Nachname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Betrag">Betrag</label><br />
                    <input name="Betrag" type="text" class="Feld" size="8" maxlength="8">
                    
                    <br>
                    
                    <label for="Versanddatum">Versanddatum</label><br />
                    <input name="Versanddatum" type="text" class="Feld" size="10" maxlength="10">
                    
                    
                    
                    <label for="Bezahlt"></label><br />
                    <input type="radio" class="Radio" name="Bezahlt" value="bezahlt"> bezahlt<br>
                    <input type="radio" class="Radio" name="Bezahlt" value="nicht bezahlt"> nicht bezahlt
                    
                    <br>
                    
                    <label for="Datei">Datei(en)</label><br />
                    <input name="Datei" type="file" class="Feld" size="40" maxlength="100" multiple="multiple" enctype="multipart/form-data">
                    
                    <br>
                    
                    <label for="Kommentar">Kommentar</label><br />
                    <textarea name="Text" class="Bereich" rows="10" cols="50"></textarea>
                    
                    <br>
                    <br>
                    
                    <input type="submit" class="Button"/>
                    <input type="reset" class="Button"/>    
                </form>
            </div>
            
        </div>
    </body>
    
</html>

PHP:
<?php
    $db_link=mysql_connect('localhost', 'fabiii9sql1', 'xxxxxxxxx);
    if($db_link){
        mysql_select_db('fabiii9sql1', $db_link);
        echo "<p>Datenbankverbindung erfolgreich</p>";
    }
    else{
        echo(mysql_error($db_link));
    }
    
    $Rechnungsnummer = $_POST["Rechnungsnummer"];
    $AZ = $_POST["AZ"];
    $Vorname = $_POST["Vorname"];
    $Nachname = $_POST["Nachname"];
    $Betrag = $_POST["Betrag"];
    $Versanddatum = $_POST["Versanddatum"];
    $Bezahlt = $_POST["Bezahlt"];
    $Datei = $_FILE["Datei"];
    $Kommentar = $_POST["Kommentar"];
    
    

    if (array_key_exists('img',$_FILES)) {

    $tmpname = $_FILES['img']['tmp_name'];

    $type = $_FILES['img']['type'];

    $hndFile = fopen($tmpname, "r");

    $data = addslashes(fread($hndFile, filesize($tmpname)));

    $strQuery = "INSERT INTO rechungen

    (Datei,Dateityp) VALUES

    ('$Datei','$Dateityp')" ;

    if (!mysql_query( $strQuery))

    die(mysql_error());

}
    
    
    if($Nachname =="") {
        echo "Du hast nicht alle Felder ausgefüllt";}
        else {
    
    

$eintragen = mysql_query("
    INSERT INTO rechnungen (
        Rechnungsnummer, AZ, Vorname, Nachname, Betrag, Versanddatum, Bezahlt, Datei, Kommentar
    ) VALUES (
        '$Rechnungsnummer', '$AZ', '$Vorname', '$Nachname', '$Betrag', '$Versanddatum', '$Bezahlt', '$Datei', '$Kommentar')"
    ) or die (mysql_error());  
    
    if ($eintragen == true) {
    
    echo '<h3><a href="E_Rechnungen.html">neue Eingabe</a></h3>';
    echo '<h3><a href="index.html">Home</a></h3>';
    
    echo "<br><h1>Diese Angaben wurden gespeichert:<h1>";
    
    
    
    echo "<h4><br>Rechnungsnummer:  $Rechnungsnummer</h4>";
    echo "<h4><br>AZ:  $AZ</h4>";
    echo "<h4><br>Vorname:  $Vorname</h4>";
    echo "<h4><br>Nachname:  $Nachname</h4>";
    echo "<h4><br>Betrag:  $Betrag</h4>";
    echo "<h4><br>Versanddatum:  $Versanddatum</h4>";
    echo "<h4><br>Bezahlt ?:  $Bezahlt</h4>";
    echo "<h4><br>Datei:  $Datei</h4>";
    echo "<h4><br>Kommentar:  $Kommentar</h4>";
    
    } else {
    echo "Fehler im System";
    }
    

    
    }
    
    
    
    
    mysql_close($db_link);
        

?>

Hier meine Tabelle Rechnungen in phpmyadmin:

Unbenannt.jpg

Hier Detailansicht von dem interessantem Teil:

Unbenannt.jpg

Hier die Seite nach Eingabe des Formular mit Fehlermeldung:

Unbenannt.jpg


Vielen Dank für deine so große Geduld.
Müsste es jetzt aber bald haben.
Ich glaub das Dateiuploadfeld ist das schwerste von allem.

Viele Grüße
Fabian
 
Also ich erkenne zwar null auf den Bildern, aber ich sehe auch kein Feld "Kommentar" in deiner Tabelle "rechnungen".

Wenn du deine Spalten und Variablen Groß- und Klein schreibst, könnte es dir sehr viele Fehler unterbringen^^ Falls du das nicht Routine mäßig machst, würde ich dir auf komplette Kleinschreibung empfehlen.

Ansonsten sind mir folgende Zeilen aufgefallen:

PHP:
//HTML-Code Bereich
<label for="Kommentar">Kommentar</label><br />                    <textarea name="Text" class="Bereich" rows="10" cols="50"></textarea>

//PHP-Code Bereich
$Kommentar = $_POST["Kommentar"];


Du benutzt verschiedene Namen. Entweder setze diese lieber richtig, oder bleibe bei "Kommentar" auch für die <textarea>.

Und noch einmal für die Fehlermeldung: Die Spalte in der Tabelle fehlt anscheinend ( siehe Datenbank::Tabelle::rechnungen )
 
Hallo zorndyuke
user-offline.png
,
vielen Dank für deine Antwort habe das mit dem Kommentar jetzt gelöst.
funktioniert alles es kommt zumindest keine Fehlermeldung.
Habs einfach nicht gesehen. Sorry.

Das mit dem Dateiupload oben steht ja das Scribt.
Meine Frage ist ist das so richtig?
Wie lese ich jetzt die Datei wieder aus ???

Vielen Dank für deine Bemühungen !!!

Gruß
Fabian
 
Hallo,
vielen Dank für deine Antwort.
ICh glaube dieser Link bringt mich nicht recht weiter da ich ja keine Bilder hochladen will sondern pdf Dateien.
Diese sollen ja nicht im Browser angezeigt werden sonder nur zum runterladen zur verwügung sein.

Wie mach ich das?
In phpmyadmin zeigt er mir an wenn ich eine Datei hochlade dass die 0B hat ich nehm an dass da irgendwas falsch läuft.
Was is falsch oben stehen meine Scribte.

Bild

pic1.jpg

Bild

pic2.jpg


Vielen Dank
Fabian
 
Ob Bild oder PDF ist egal. Die Speicherung der Datei in der Datenbank ist identisch. Beim Auslesen und ausgeben unterscheidet es sich nur vom Content-type her (wie oben geschrieben).

Wenn Du konkreten Code hast an dem Du aktuell scheiterst, zeig diesen her damit wir ihn uns ansehen können.
 
RE

Hallo,
vielen Dank für deine Antwort.
So hab jetzt mal eine Abfrage gemacht wie zu erwarten funktioniert es natürlich nicht. Hab ich mir aber fast gedacht.
Mich wundert es nur ein bisschen dass wenn ich in phpmyadmin reinschau steht in der Spalte Datei BLOB-0B obwohl ich was hochgeladen hab.
Also irgendwas muss da falsch sein.
Da ja ein Bild keine 0B haben kann.
Geb euch jetzt nochmal meine ganzen Codes der Übersichtlichkeit halber.

Code 1 Formular zur Eingabe
HTML:
<html>
    
    <head>
        <title>Eingabe</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Eingabe</h2>
            </div>
            
            <ul id="Navigation">
                <li><a href="index.html">Start</a></li>
                <li><a href="Eingabe.html">Eingabe</a></li>
                <li><a href="Ausgabe.html">Ausgabe</a></li>
                <li><a href="Hilfe.html">Hilfe</a></li>
            </ul>
          
             <div id="main">
                <h1>Eingabe Rechnungen</h1>
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                
                    <label for="Rechnungsnummer">Rechnungsnummer</label><br />
                    <input name="Rechnungsnummer" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="AZ">AZ</label><br />
                    <input name="AZ" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="Vorname">Vorname</label><br />
                    <input name="Vorname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Nachname">Nachname</label><br />
                    <input name="Nachname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Betrag">Betrag</label><br />
                    <input name="Betrag" type="text" class="Feld" size="8" maxlength="8">
                    
                    <br>
                    
                    <label for="Versanddatum">Versanddatum 2012-08-19</label><br />
                    <input name="Versanddatum" type="text" class="Feld" size="10" maxlength="10">
                    
                    
                    
                    <label for="Bezahlt"></label><br />
                    <input type="radio" class="Radio" name="Bezahlt" value="ja"> bezahlt<br>
                    <input type="radio" class="Radio" name="Bezahlt" value="nein"> nicht bezahlt
                    
                    <br>
                    
                    <label for="Datei">Datei(en)</label><br />
                    <input name="Datei" type="file" class="Feld" size="40" maxlength="100" multiple="multiple" enctype="multipart/form-data">
                    
                    <br>
                    
                    <label for="Kommentar">Kommentar</label><br />c
                    <textarea name="Kommentar" class="Bereich" rows="10" cols="50"></textarea>
                    
                    <br>
                    <br>
                    
                    <input type="submit" class="Button"/>
                    <input type="reset" class="Button"/>    
                </form>
            </div>
            
        </div>
    </body>
    
</html>
Code 2 Verarbetung der Eingabe
PHP:
<?php

include "connect.php";
    
    $Rechnungsnummer = $_POST["Rechnungsnummer"];
    $AZ = $_POST["AZ"];
    $Vorname = $_POST["Vorname"];
    $Nachname = $_POST["Nachname"];
    $Betrag = $_POST["Betrag"];
    $Versanddatum = $_POST["Versanddatum"];
    $Bezahlt = $_POST["Bezahlt"];
    $Datei = $_FILE["Datei"];
    $Kommentar = $_POST["Kommentar"];
    
    

    if (array_key_exists('img',$_FILES)) {

    $tmpname = $_FILES['img']['tmp_name'];

    $type = $_FILES['img']['type'];

    $hndFile = fopen($tmpname, "r");

    $data = addslashes(fread($hndFile, filesize($tmpname)));

    $strQuery = "INSERT INTO rechungen

    (Datei,Dateityp) VALUES

    ('$Datei','$Dateityp')" ;

    if (!mysql_query( $strQuery))

    die(mysql_error());

}
    
    
    if($Rechnungsnummer =="") {
        echo "Du hast nicht alle Felder ausgefüllt";}
        else {
    
    

$eintragen = mysql_query("
    INSERT INTO rechnungen (
        Rechnungsnummer, AZ, Vorname, Nachname, Betrag, Versanddatum, Bezahlt, Datei, Kommentar
    ) VALUES (
        '$Rechnungsnummer', '$AZ', '$Vorname', '$Nachname', '$Betrag', '$Versanddatum', '$Bezahlt', '$Datei', '$Kommentar')"
    ) or die (mysql_error());  
    
    if ($eintragen == true) {
    
    echo '<h3><a href="E_Rechnungen.html">neue Eingabe</a></h3>';
    echo '<h3><a href="index.html">Home</a></h3>';

    
    echo "<br><h1>Diese Angaben wurden gespeichert:<h1>";
    
    
    
    echo "<h4><br>Rechnungsnummer:  $Rechnungsnummer</h4>";
    echo "<h4><br>AZ:  $AZ</h4>";
    echo "<h4><br>Vorname:  $Vorname</h4>";
    echo "<h4><br>Nachname:  $Nachname</h4>";
    echo "<h4><br>Betrag:  $Betrag</h4>";
    echo "<h4><br>Versanddatum:  $Versanddatum</h4>";
    echo "<h4><br>Bezahlt ?:  $Bezahlt</h4>";
    echo "<h4><br>Datei:  $Datei</h4>";
    echo "<h4><br>Kommentar:  $Kommentar</h4>";
    
    } else {
    echo "Fehler im System";
    }
    

    
    }
    
?>
Code 3 Ausgabe von der Datenbank
HTML:
<html>
    
    <head>
        <title>Gesammte Ausgabe-ID</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Gesammte Ausgabe-ID</h2>
            </div>
            
        <ul id="Navigation">
            <li><a href="index.html">Start</a></li>
            <li><a href="Eingabe.html">Eingabe</a></li>
            <li><a href="Ausgabe.html">Ausgabe</a></li>
            <li><a href="Hilfe.html">Hilfe</a></li>
          </ul>
          
        
          
         <div id="main">
            
            <div id="Ausgabe">
            
                <h2>Sortiert nach:<font color="#FF0000"> ID</font><br>Sortieren nach:<br></h2>
                <li><a href="Ausgabe_gesamt_ID.php">ID |</a></li>
                <li><a href="Ausgabe_gesamt_Rn.-Nr..php">Rn.-Nr. |</a></li>
                <li><a href="Ausgabe_gesamt_AZ.php">AZ |</a></li>
                <li><a href="Ausgabe_gesamt_Vorname.php">Vorname |</a></li>
                <li><a href="Ausgabe_gesamt_Nachname.php">Nachname</a></li>
            </div>
            <?php

                include "connect.php";
                 
                $result = mysql_query('SELECT * FROM rechnungen ORDER BY ID')
                                  or die(mysql_error());
                 
                $num = mysql_num_rows ($result);
                echo "<br><br>";
                echo "Es wurden $num Datensätze gefunden<br>";    
                 
                echo '<table>
                      <tr><th>ID</th>
                          <th>Rechnungsnummer</th>
                          <th>AZ</th>
                          <th>Vorname</th>
                          <th>Nachname</th>
                          <th>Betrag</th>
                          <th>Versanddatum</th>
                          <th>Bezahlt</th>
                          <th>Datei</th>
                          <th>Kommentar</th>
                      </tr>';
                     
                while($row = mysql_fetch_array($result))
                {
                    echo '<tr>';
                    echo '<td>' . $row['ID'] . '</td>';
                    echo '<td>' . $row['Rechnungsnummer'] . '</td>';
                    echo '<td>' . $row['AZ'] . '</td>';
                    echo '<td>' . $row['Vorname'] . '</td>';
                    echo '<td>' . $row['Nachname'] . '</td>';
                    echo '<td>' . $row['Betrag'] . '</td>';
                    echo '<td>' . $row['Versanddatum'] . '</td>';
                    echo '<td>' . $row['Bezahlt'] . '</td>';
                    echo '<td>' . $row['Datei'] . '</td>';
                    echo '<td>' . $row['Kommentar'] . '</td>';
                }      
                echo   ('</table>');
                echo "<br><br>";
            ?> 

        </div>
            
        </div>
    </body>
    
</html>

So jetzt noch ein paar Bilder.
Weis nicht ob du wa erkennen kannst.
Weis nicht wie man die Bilder hier im Forum vergrößert ?

Bild 1 Ausgabeseite
Gesammte Ausgabe-ID.jpg

Bild 2 phpmyadmin
phpmyadmin.jpg

Was will ich:
Ich will dass in der Spalte Datei dann ein Art Link oder eine Schaltfläche ist und wenn ich dann da drauf drück öffnet sich so ein Fenster:

mi12.jpg

Es muss genau so ein Fenster sein aber ich will halt dass Sich dann diese Datei öffnet.

Vielen, vielen Dank für eure Bemühungen.
Wenn ich das hab dann bin ich fertig mit dieser Sache und ich wäre euch echt sehr, sehr dankbar.
Würde euch dann auch die Fertigen Codes zur Verfügung stellen, dass Ihr dann auch eine digitale Rechnungsverwaltung per Browser habt.

Viele Grüße
Fabian
 
Das siehst Du richtig, dass der Blob-Wert keine 0-Länge haben sollte. Den Grund sehe ich aber auf den ersten Blick: ich hatte dich schon in Beitrag #2 auf ein fehlendes Attribut hingewiesen. Ergänze das, dann kannst Du die Datei auch tatsächlich über das $_FILES-Array in der Datenbank speichern.

Dann hast Du hier noch einen Schreibfehler:
PHP:
$Datei = $_FILE["Datei"];
Da fehlt ein S.

Um so etwas selbst zu erkennen, solltest Du error_reporting() und display_errors() anschalten.
 
RE

Hallo,
vielen Dank für derinen Beitrag.
Ich hab diesen Rechtschreibfehler einfach nicht gesehen.
Das mit dem error Reporting kannst du mir da ein Link schicken oder es mir erklären wie ich des anstelle. Hab in Google nichts richtiges gefunden.

Das Attribut war aber im Scribt das enctype Attribut meinst du oder?

Hier nochmal die Scripte es funktioniert nämlich immer nch nicht.
Es werden immer noch angezeigt BLOB-0B
Ich weis einfach nicht wer was ich machen soll.
Wäre um eure Hilfe echt dankbar !!!!

Vielen Dank

Viele Grüße

Fabian

Code 1 Formular zur Eingabe
HTML:
<html>
    
    <head>
        <title>Eingabe</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Eingabe</h2>
            </div>
            
            <ul id="Navigation">
                <li><a href="index.html">Start</a></li>
                <li><a href="Eingabe.html">Eingabe</a></li>
                <li><a href="Ausgabe.html">Ausgabe</a></li>
                <li><a href="Hilfe.html">Hilfe</a></li>
            </ul>
          
             <div id="main">
                <h1>Eingabe Rechnungen</h1>
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                
                    <label for="Rechnungsnummer">Rechnungsnummer*</label><br />
                    <input name="Rechnungsnummer" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="AZ">AZ</label><br />
                    <input name="AZ" type="text" class="Feld" size="10" maxlength="15">
                    
                    <br>
                    
                    <label for="Vorname">Vorname</label><br />
                    <input name="Vorname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Nachname">Nachname</label><br />
                    <input name="Nachname" type="text" class="Feld" size="20" maxlength="20">
                    
                    <br>
                    
                    <label for="Betrag">Betrag</label><br />
                    <input name="Betrag" type="text" class="Feld" size="8" maxlength="8">
                    
                    <br>
                    
                    <label for="Versanddatum">Versanddatum 2012-08-19</label><br />
                    <input name="Versanddatum" type="text" class="Feld" size="10" maxlength="10">
                    
                    <br>
                    
                    <label for="Bezahlt"></label><br />
                    <input type="radio" class="Radio" name="Bezahlt" value="ja"> bezahlt<br>
                    <input type="radio" class="Radio" name="Bezahlt" value="nein"> nicht bezahlt
                    
                    <br>
                    <br>
                
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                    
                    <label for="Datei">Datei(en) (mit Strg können Sie mehrere Dateien hochladen)</label><br />
                    <input name="Datei" type="file" class="Feld" size="40" maxlength="100" multiple="multiple" enctype="multipart/form-data">
                
                    <br>
                    
                <form action="E_Rechnungen_Verarbeitung.php" method="post">
                    
                    <label for="Kommentar">Kommentar</label><br />
                    <textarea name="Kommentar" class="Bereich" rows="10" cols="50"></textarea>
                    
                    <br>
                    <br>
                    *Pflichtfeld
                    <br>
                    <br>
                    <input type="submit" class="Button"/>
                    <input type="reset" class="Button"/>    
                
                    
                </form>
                </form>
                </form>
                
                
            </div>
            
        </div>
    </body>
    
</html>
Code 2 Verarbetung der Eingabe
PHP:
<?php

include "connect.php";
    
    $Rechnungsnummer = $_POST["Rechnungsnummer"];
    $AZ = $_POST["AZ"];
    $Vorname = $_POST["Vorname"];
    $Nachname = $_POST["Nachname"];
    $Betrag = $_POST["Betrag"];
    $Versanddatum = $_POST["Versanddatum"];
    $Bezahlt = $_POST["Bezahlt"];
    $Datei = $_FILES["Datei"];  
    $Kommentar = $_POST["Kommentar"];
    
    

    if (array_key_exists('img',$_FILES)) {

    $tmpname = $_FILES['img']['tmp_name'];

    $type = $_FILES['img']['type'];

    $hndFile = fopen($tmpname, "r");

    $data = addslashes(fread($hndFile, filesize($tmpname)));

    $strQuery = "INSERT INTO rechungen

    (Datei,Dateityp) VALUES

    ('$Datei','$Dateityp')" ;

    if (!mysql_query( $strQuery))

    die(mysql_error());

}
    
    
    if($Rechnungsnummer =="") {
        echo "Du hast nicht alle Felder ausgefüllt";}
        else {
    
    

$eintragen = mysql_query("
    INSERT INTO rechnungen (
        Rechnungsnummer, AZ, Vorname, Nachname, Betrag, Versanddatum, Bezahlt, Datei, Kommentar
    ) VALUES (
        '$Rechnungsnummer', '$AZ', '$Vorname', '$Nachname', '$Betrag', '$Versanddatum', '$Bezahlt', '$Datei', '$Kommentar')"
    ) or die (mysql_error());  
    
    if ($eintragen == true) {
    
    echo '<h3><a href="E_Rechnungen.html">neue Eingabe</a></h3>';
    echo '<h3><a href="index.html">Home</a></h3>';

    
    echo "<br><h1>Diese Angaben wurden gespeichert:<h1>";
    
    
    
    echo "<h4><br>Rechnungsnummer:  $Rechnungsnummer</h4>";
    echo "<h4><br>AZ:  $AZ</h4>";
    echo "<h4><br>Vorname:  $Vorname</h4>";
    echo "<h4><br>Nachname:  $Nachname</h4>";
    echo "<h4><br>Betrag:  $Betrag</h4>";
    echo "<h4><br>Versanddatum:  $Versanddatum</h4>";
    echo "<h4><br>Bezahlt ?:  $Bezahlt</h4>";
    echo "<h4><br>Datei:  $Datei</h4>";
    echo "<h4><br>Kommentar:  $Kommentar</h4>";
    
    } else {
    echo "Fehler im System";
    }
    

    
    }
    
?>
Code 3 Ausgabe von der Datenbank
HTML:
<html>
    
    <head>
        <title>Gesammte Ausgabe-Nachname</title>
        <link rel="stylesheet" type="text/css" href="style.css" media="all">
    </head>
    
    <body>
        <div id="website">
            <div id="header">
                <h2>Gesammte Ausgabe-Nachname</h2>
            </div>
            
        <ul id="Navigation">
            <li><a href="index.html">Start</a></li>
            <li><a href="Eingabe.html">Eingabe</a></li>
            <li><a href="Ausgabe.html">Ausgabe</a></li>
            <li><a href="Hilfe.html">Hilfe</a></li>
          </ul>
          
        
          
         <div id="main">
            
            <div id="Ausgabe">
            
                <h2>Sortiert nach:<font color="#FF0000"> Nachname</font><br>Sortieren nach:<br></h2>
                <li><a href="Ausgabe_gesamt_ID.php">ID |</a></li>
                <li><a href="Ausgabe_gesamt_Rn.-Nr..php">Rn.-Nr. |</a></li>
                <li><a href="Ausgabe_gesamt_AZ.php">AZ |</a></li>
                <li><a href="Ausgabe_gesamt_Vorname.php">Vorname |</a></li>
                <li><a href="Ausgabe_gesamt_Nachname.php">Nachname</a></li>
            </div>
            <?php

                include "connect.php";
                 
                $result = mysql_query('SELECT * FROM rechnungen ORDER BY Nachname')
                                  or die(mysql_error());
                 
                $num = mysql_num_rows ($result);
                echo "<br><br>";
                echo "Es wurden $num Datensätze gefunden<br>";    
                 
                echo '<table>
                      <tr><th>ID</th>
                          <th>Rechnungsnummer</th>
                          <th>AZ</th>
                          <th>Vorname</th>
                          <th>Nachname</th>
                          <th>Betrag</th>
                          <th>Versanddatum</th>
                          <th>Bezahlt</th>
                          <th>Datei</th>
                          <th>Kommentar</th>
                      </tr>';
                     
                while($row = mysql_fetch_array($result))
                {
                    echo '<tr>';
                    echo '<td>' . $row['ID'] . '</td>';
                    echo '<td>' . $row['Rechnungsnummer'] . '</td>';
                    echo '<td>' . $row['AZ'] . '</td>';
                    echo '<td>' . $row['Vorname'] . '</td>';
                    echo '<td>' . $row['Nachname'] . '</td>';
                    echo '<td>' . $row['Betrag'] . '</td>';
                    echo '<td>' . $row['Versanddatum'] . '</td>';
                    echo '<td>' . $row['Bezahlt'] . '</td>';
                    echo '<td>' . $row['Datei'] . '</td>';
                    echo '<td>' . $row['Kommentar'] . '</td>';
                }      
                echo   ('</table>');
                echo "<br><br>";
            ?> 

        </div>
            
        </div>
    </body>
    
</html>
 
Hallo,
ich verstehe dich nicht ganz. :D
In dem Beitrag#2 steht dass ich dieses Attribut hinzufügen soll.
Das habe ich auch gemacht!

PHP:
<form action="E_Rechnungen_Verarbeitung.php" method="post">                                          <label for="Datei">Datei(en) (mit Strg können Sie mehrere Dateien hochladen)</label><br />       <input name="Datei" type="file" class="Feld" size="40" maxlength="100" multiple="multiple" enctype="multipart/form-data">

Da steht doch alles...

Vielen Dank
Fabi
 
Nein, da steht imho auch, dass das Attribut in das <form>-Element gehört, wie man auch auf vielen Seiten nachlesen kann. Nicht ins input-Element (was btw. nicht validen Code erzeugt).
 
Zurück
Oben