Manuelles Eintragen von Dateien
-
Hallo.
Nachdem der Upload von Dateien nur bis ungefähr 1 MB Größe zuverlässig funktioniert und darüber hinaus langsam und deshalb zeitraubend ist, möchte ich die notwendigen Dateien (vornehmlich Manuals und andere Dokus) per FTP hochladen und dann zu Fuss in der Datenbank verankern.
Das scheitert aber wohl an der Checksum, die vom System ja nur bei einem Upload generiert und gespeichert wird. Wie kann ich es trotzdem so machen?
dpetereit
-
Nachtrag:
Im Übrigen kommt bei mindestens jeder zweiten Datei der Fehler:
Fatal error: Maximum execution time of 30 seconds exceeded in D:\sites\m3it\roels-partner\modules\documents\index.php on line 2
Daher Zusatzfrage und Anregung: Wo kann ich den Wert hochsetzen? Vernünftig wäre eine Aktivitätsanzeige beim Upload, die einen erkennen lässt, dass überhaupt noch was sinnvolles geschieht.
Wichtig a ber weiterhin: Kann ich Dateien auch manuell eintragen??
dpetereit
-
@dpetereit2:
Nachtrag:
Im Übrigen kommt bei mindestens jeder zweiten Datei der Fehler:
Fatal error: Maximum execution time of 30 seconds exceeded in D:\sites\m3it\roels-partner\modules\documents\index.php on line 2
Daher Zusatzfrage und Anregung: Wo kann ich den Wert hochsetzen? Vernünftig wäre eine Aktivitätsanzeige beim Upload, die einen erkennen lässt, dass überhaupt noch was sinnvolles geschieht.
Wichtig a ber weiterhin: Kann ich Dateien auch manuell eintragen??
dpetereit
das mit dem timeout ist ein setting in deinem php.
es gibt in der php.ini 3 settings die den upload betreffen:post_max_size = 8M upload_max_filesize = 2M max_execution_time = 30
die max_execution_time beschränkt die dauer die der uplaod maximal dauern darf. setzt den wert einmal auf 60 , oder wenn das nicht reicht noch höher.
die beiden anderen werte geben die maximalte dateigröße an, die upgeloaded werden darf . in diesem beispiel wäre das 2MB. wichtig ist das wenn du upload_max_filesize hochsetzt du post_max_size um die gleichen wert mit hochsetzt . also z.b.post_max_size = 10M upload_max_filesize = 4M
würde einen dateiupload von 4MB erlauben
grüße
-
Änderungen gem. jknuth durchgeführt: Bringt nix.
Frage nach manueller Eintragemöglichkeit daher umso akuter. Per FTP habe ich den ganzen Kram nämlich schon lange hochgeladen….
:!: :!: :!: :!: :!: :!: :!: :!: :!:
-
Hi,
die Tabelle mod_documents in der Datenbank doit beinhaltet die ganzen Dateien. Als Typ muss der MIME Type mit derPHP-Funktion mime_get_content_type() erfasst werden, die Checksum ist der MD5-Hash des binären Dateiinhaltes, zu erfassen mit dem PHP-Funktion md5 bzw. SQL-Funktion MD5. Unter anderen Scriptsprachen sind sicherlich auch gleichwertige Funktionen vorhanden, z.B. in Perl oder als Shellskript. Eine Beispieleintragung wäre:
INSERT INTO doit.mod_documents VALUES('%', 'der_dateiname', [hier die dateigröße], [mime-content-type], [MD5-Checksumme]);
-
Hallo aw.
Da will mich aber einer veräppeln, wa? Die Tabelle enthält nicht die ganze Datei. Wär ja technisch auch gar nicht möglich. Die Dateien werden im Pfad
\i-doit\modules\documents abgelegt. Ich habe auch nicht gefunden, wo man das ändern könnte. Ist ja auch unnötig.So. Jetzt kann es doch kein Problem sein, schlicht die Pfade in der Datenbank zu führen, um die Verlinkung zu selbigen aus anderen Tabellen sicher zu stellen. Was soll das Thema mit der MD5-Checksumme? Wofür soll das gut sein?
dpetereit
-
Nachtrag:
Und wofür muss innerhalb der DB der Mime-Type gespeichert werden?
-
Da will mich aber einer veräppeln, wa? Die Tabelle enthält nicht die ganze Datei. Wär ja technisch auch gar nicht möglich. Die Dateien werden im Pfad
\i-doit\modules\documents abgelegt. Ich habe auch nicht gefunden, wo man das ändern könnte. Ist ja auch unnötig.Ich veräppel hier sicherlich niemanden.
Nein, enthält sie nicht, sondern nur den Namen der Datei. Der Name der Datei, der in dem documents-Verzeichnis genutzt werden muss, hat folgende Syntax:
ID_dateiname
Die ID ist dabei die ID des Datensatzes in der mod_documents-Tabelle.
also z.B.
1_text1.txt 2_bedienungsanleitung.pdf
So. Jetzt kann es doch kein Problem sein, schlicht die Pfade in der Datenbank zu führen, um die Verlinkung zu selbigen aus anderen Tabellen sicher zu stellen. Was soll das Thema mit der MD5-Checksumme? Wofür soll das gut sein?
Mit Checksummen kann man die Datenintegrität sicherstellen, ein einfaches Verfahren einer Checksumme wäre z.B. die Quersumme mehrerer Ziffern.
Der MIME-Type bestimmt den Typ der Datei, da dieser an der Dateiendung nicht genau auszumachen ist. Wir wollten z.B. einen eigenen Viewer bauen, der je nach Typ in einen anderen Ansichtsmodus geht. Bilder würden halt in einem eigenen i-doIT Fenster angezeigt werden, außerdem könnte man an Dateien mit einem bestimmten Typ externe Scripte aufhängen, die z.B. die PDFs durchparsen und die Keywords in einem Dictionary hinterlegen, um diese für eine bessere Suche zu nutzen.
-
Hallo aw.
Super Ideen. Aber sollte nicht erstmal die Grundfunktionalität sauber stehen, bevor man einen softwaretechnischen Potsdamer Platz ausbaggert?
dpetereit