Dateiupload aber nicht im bearbeiten Feld
Eingetragen von 8026 (14)
am 15.06.2012 - 09:47 Uhr in
am 15.06.2012 - 09:47 Uhr in
Hallo Leute,
kurz zu meinem Problem. Ich brauche eine Seite auf der meine Kunden PDF Dokumente auf meinen Server hochladen können. Klingt nicht so spektakulär aber bei der Umsertzung hängt es ein bisschen.
Was ich nicht so richtig verstehe ist wie drupal mit diesem Field_Datei umgeht. Normalerweise würde ich ein Formular mit HTML erstellen und auf ein php script verweisen. Da kann ich dann den Pfad angeben wo die Datei gespeichert werden soll. Etwa so:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="datei"><br>
<input type="submit" value="senden">
</form>
<?php
move_uploaded_file($_FILES["datei"]["tmp_name"], "upload/datei1.txt")
?>
Sehr vereinfacht dargestellt.
Es muss doch aber bei drupal auch anders funktionieren. Mir wurde schon der Tipp gegeben das ich eine Inhaltstyp erzeugen soll mit einem Feld file_field und dann dem user "Gast" einfach die Rechte geben kann für diesen Inhaltstyp eine neue Node zu erzeugen. Aber wenn ich das mache komm ich ja trotzdem nur über den bearbeiten Reiter zum upload. Was gibt es denn für Funktionen/Variablen für dieses file_field?
Danke schonmal für die Mühe das ihr euch den ganzen Mist durchgelesen habt.
Gruß Stefan
P.s: mir würde auch ein Tutorial helfen in dem dieses Thema behandelt wird.
- Anmelden oder Registrieren um Kommentare zu schreiben
Lege einfach einen Datentyp
am 15.06.2012 - 09:55 Uhr
Lege einfach einen Datentyp an mit einem File-Field. Bei dem File-Field definierst Du, wo es abgelegt werden soll und daß es nur Files mit der Endung .pdf akzeptieren soll. Danach legst Du einfach mal einen neuen Datensatz von diesem Typ an. Dabei wirst Du sehen, daß alles, was Du mühsam selbst basteln willst, schon da ist. Dann definierst Du noch eine Rolle, die das Recht bekommt, einen solchen Datentyp anzulegen und gibst den berechtigten Personen diese Rolle.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ok danke, den Tipp hab ich ja
am 15.06.2012 - 11:55 Uhr
Ok danke, den Tipp hab ich ja schonmal von dir bekommen. Das Problem ist einfach, wenn ich es so über die Berechtigungen mache, dass der Besucher ja immernoch in den "bearbeiten" Reiter klicken muss um zu dem upload Feld zu gelangen. Aber ich will ja garnicht das der user noch irgendwas klicken muss. Er soll direkt wenn er meine Seite aufruft die Möglichkeit haben Dateien auszuwählen und hochzuladen.
So, ich glaube jetzt hab ichs
am 15.06.2012 - 12:55 Uhr
So, ich glaube jetzt hab ichs hinbekommen, aber....diese Variante bedeutet ja das jedesmal wenn ein Besucher eine Datei hochläd, auch ein neuer Inhalt erzeugt wird. Dann hab ich ja eine irre lange Liste an Inhalt, die auch jedesmal wächst. Seh ich das richtig?
Ja, aber wie willst Du sonst
am 15.06.2012 - 14:26 Uhr
Ja, aber wie willst Du sonst denn eine Liste der vorhandenen Dateien erstellen? Wenn etwas heruntergeladen werden soll, braucht es doch eine solche Liste. Du kannst jetzt an den Datentyp mittels Taxonomie noch Kategorien anhängen, die Du dann beim Erstellen der entsprechenden Liste als Filter verwenden kannst. Views erlaubt Dir sogar diese Filte hervozuheben (exposed filters), damit der Besucher selbst den Begriff auswählt, nach dem er filtert.
Zu Views gibt es im Übrigen eine hervorragende Tutorial Serie bei NodeOne Taming the Beast: Learn Views with NodeOne.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ich will ja aber gar keinen
am 19.06.2012 - 12:48 Uhr
Ich will ja aber gar keinen download. Der Gast soll nur seine Dateien hochladen und mehr nicht. Sobald die Dateien auf dem Server sind werden sie von einem Administrator weiter verarbeitet.
Auch der Admin braucht eine
am 19.06.2012 - 14:13 Uhr
Auch der Admin braucht eine Liste zum Bearbeiten. Wie soll der denn sonst die einzelnen Dateien ansprechen und verwalten.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ich bins mal wieder. Ich
am 27.06.2012 - 10:45 Uhr
Ich bins mal wieder. Ich glaube so langsam steig ich dahinter. Ich hab das jetzt so wie du es mit erklärt hast gemacht und es funktioniert. Und ich hab auch verstanden warum :), also vielen danke schonmal. Ein paar Kleinigkeiten gibt es aber noch die mich stören.
Kurz zur Info: Ich benutzte jetzt definitiv drupal in der Version 6.26 und habe nur die core Module installiert. Da es ja schon ein upload modul im Kern gibt habe ich auf CCK verzichtet.
Ich habe in meinem Menü einen Link hinzugefügt der direkt auf node/add/ verweist.
Ok, zum einen, wenn Besucher meiner Seite neuen Inhalt mit dem entsprechenden Inhaltstypen erstellen dann werden alle Dateien in das selbe Verzeichnis gespeichert. Hab ich die Möglichkeit das für jeden Upload eines Besuchers auch automatisch ein Ordner(am besten mit seinem Namen über ein Textfeld eingegeben) erstellt wird in dem die Dateien gespeichert werden? Das Problem ist, das ich ja irgendwann einfach die Übersicht verliere und garnicht mehr weiss welche Datei von wem kommt.
Das zweite ist das durch das klicken des Links der Besucher auf die Create Content Seite geleitet wird (logisch) und damit auch immer als Titel auf der Seite steht "Create ". Bekomme ich den Titel irgendwie weg?
Achso noch eins, hätte ich fast vergessen. Da ja neuer Inhalt erzeugt wird kommt auch immer automatisch der "Vorschau" Button. Das ist nicht so wild aber ich fände es schöner wenn nur der "Speichern" Button da wäre. Kann ich das auch ändern?
Beste Grüße Stefan
Deshalb hatte ich darauf
am 27.06.2012 - 11:19 Uhr
Deshalb hatte ich darauf hingewiesen File-Field aus dem CCK-Umfeld zu benutzen. Damit kannst Du User-spezifische Verzeichnisse zur Ablage der Dateien definieren.
Die Elemente der Seite, die Du nicht anzeigen willst, kannst Du mittels CSS ausblenden (display:none).
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
und wo lege ich die an?
am 27.06.2012 - 13:09 Uhr
und wo lege ich die an?
Wenn Du ein Feld vom Typ
am 27.06.2012 - 13:37 Uhr
Wenn Du ein Feld vom Typ Datei zu einem Datentyp hinzufügst, hast Du auf der zweiten Konfigurationsseite die Möglichkeit die Dateiendungen festzulegen. Etwas tiefer lassen sich die Dateigrößen und die Pfadeinstellungen festlegen (einfach mal die entsprechenden Links aufklappen). Dort kannst Du die Pfade über diverse Token zusammenbauen unter anderem hast Du da die UserID oder den User-Namen. Wenn Du dort z.B.
[user]
eingibst, bekommt jeder User sein eigenes Verzeichnis mit seinem Login-Namen unter Files.Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ah ok, das mit den token
am 27.06.2012 - 13:47 Uhr
Ah ok, das mit den token wusste ich nicht. Sind diese token im Core mit enthalten oder muss ich dafür ein Modul installieren? Wenn der User aber "Gast" ist dann hab ich doch wieder das gleiche Problem, oder?
Ja, wenn Du dem User Gast
am 27.06.2012 - 14:10 Uhr
Diese Token kommen mit dem File-Field Modul. Wenn Du dem User Gast Rechte zum Upload geben willst, hast Du wieder viele Files in einem Verzeichnis. Es gibt aber auch noch weitere Token etwa mit dem Datum dazu.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
dummerweise akzeptiert er nur
am 27.06.2012 - 14:33 Uhr
dummerweise akzeptiert er nur [user] alles andere kann er nicht umwandeln. Was jetzt?
Geht denn nicht z.B.
am 27.06.2012 - 14:48 Uhr
Geht denn nicht z.B.
[user]-[date-in-tz]
?Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
nein leider nicht auch wenn
am 27.06.2012 - 14:56 Uhr
nein leider nicht auch wenn ich nur [date-in-tz] oder irgendwas anderes. Nur [user] funktioniert. Ich hab das token modul extra noch installiert um sicher zu gehen. Er zeigt mir ja auch eine Liste mit allen Varianten an aber...naja verarbeiten kann er komischerweise nur [user].
Ich kann dazu nur sagen, daß
am 27.06.2012 - 15:18 Uhr
Ich kann dazu nur sagen, daß es in meiner Testinstallation problemlos funktioniert (gerade extra getestet). Wie sind bei Dir die Rechte für das Files-Verzeichnis gesetzt? Anderseits, wenn es mit [user] geht, sollte es mit [user]-[date-in-tz] auch gehen. Welches Betriebssystem hat Dein Server? Vielleicht kommt er mit dem Ordernamen nicht zurecht. Der sieht bei mir dann so aus: wla-27.06.2012 - 14/10
Auf meinem Mac ist das kein Problem.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Also ich hab bisschen
am 28.06.2012 - 07:50 Uhr
Also ich hab bisschen getestet. Als Administrator übernimmt er die token, jedoch zeigt er mir bei [date-in-tz] folgende Ordnerstruktur /06/28/2012-08:44 das ist natürlich nicht so schön, aber ich kann damit leben. Als Gast geht garnichts, damit liegt es ziehmlich sicher an den Berechtigungen. Die Frage ist nur welche muss ich setzen für Gast. Dateien verwalten?
Achso der Server ist ein Linux System mit Apache 2.2 Webserver
Hm...selbst nach dem setzen
am 28.06.2012 - 11:02 Uhr
Hm...selbst nach dem setzen aller Berechtigungen für "Gast" konnte der token nicht verwendet werden. Das ist jetzt irgendwie blöd. Hast du noch irgendwelche Ideen?