2009-08-16 6 views
0

HIPHP Frage Forum Anhang Feature Hilfe

Ich habe ein Forum und ich versuche zu denken, wie man eine "Anlage" -Funktion zu tun. Sie wissen, wenn Sie einen Thread erstellen, können Sie eine Datei hochladen und im Thread anhängen.

Sollte ich eine Tabelle namens Anhang mit ID der Datei-ID in Tabellen-Dateien machen ?? Was ist der beste Weg? Und ich möchte, dass Sie mehr als 1 Anhang hochladen können. und wenn es ein Bild ist, zeige eine kleine Miniatur des Bildes.

Wie sollte ich überprüfen, ob die Datei existiert usw.? Wie würdest du das machen?

Sorry für mein schlechtes Englisch

Antwort

-1

ich ehrlich gesagt eine Säule auf dem Tisch der Beiträge schaffen würde, die ‚Attachments‘ sagt, und dann ein Komma getrennte Zeichenfolge von Anlagedateinamen tun

file1.png,file2.png,file3.png

dann, wenn Sie es in PHP zu bekommen, einfach explodiert es

$attachments = explode(',', $string);

ein nd überprüft für jede Datei, die Sie bereits in Ihrem Upload-Verzeichnis gesetzt haben:

foreach($attachments as $file) 
{ 
    if(!is_file($upload_directory.$file)) 
    { 
     $error[] = $file . " is not a valid attachment"; 
     // run cleanup script 
    } 
} 

die Anlagen zu erhalten, ist es wirklich einfacher Code, aber Sie müssen validieren und zu sanieren, die eingehende Datei.

foreach($_FILES as $array) 
{ 
    // Sanitize Here 
    die("SANITIZE HERE!"); 

    move_uploaded_file($array['tmp_name'], $upload_dir); 
} 
+0

Wirklich ... warum gibt es einen Downvote? –

0

Sie Fragen zu breit ist, aber ich werde Ihnen einige Hinweise geben:

  • speichern die Bilder auf der Festplatte, so etwas wie /uploads/--thread_id--/1.jpg,/uploads/- thread_id -/2.jpg und so weiter (auf diese Weise Sie keine Änderungen an der DB machen müssen) Sie mehr Ändern der Größe

in Bezug auf die Upload-Prozess, Validierung und Bild lesen können (Ich empfehle Ihnen, sie in dieser Reihenfolge zu lesen):

http://pt.php.net/manual/en/function.exif-imagetype.php -> image validation 
http://php.net/manual/en/function.move-uploaded-file.php -> upload process 
http://pt.php.net/manual/en/book.image.php -> image resizing & manipulation 
0

Chachas Plan klingt gut für mich, aber Sie müssen vorsichtig sein. Stellen Sie sicher, dass die Dateien, die Sie speichern, keine Ausführungsberechtigungen haben und dass sich die Datei nicht in einem Verzeichnis befindet, auf das von Ihrem Web aus zugegriffen werden kann. Ich denke, Sie sollten das Upload-Verzeichnis aus Sicherheitsgründen in ein höheres Verzeichnis als Ihr Web-Verzeichnis stellen.

Eine weitere Möglichkeit zum Speichern der Dateien: Speichern Sie ihren Binärcode in Blobs in der Datenbank. Ich bin mir nicht sicher, ob es Vorteile für diese Methode gibt, aber ich musste mich persönlich nicht mit Datei-Uploads befassen.

Seien Sie vor allem vorsichtig mit hochgeladenen Daten!