Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

File Upload - Datei-Namen überprüfen

Eingetragen von stebeg (463)
am 12.01.2010 - 12:06 Uhr in
  • Modul-Entwicklung
  • Drupal 6.x

Hallo,

Ich hab vor einer Weile ein Modul geschrieben, mit dem man Dateien hochladen kann. Diese Dateien werden dann den Usern in einem Block angezeigt, sodass sie heruntergeladen werden können.

Nun bin ich dabei diese Modul zu erweitern/verbessern. Zum Beispiel dürfen nun nurnoch PDF-Dateien hochgeladen werden. Nun möcht ich noch den Datei-Namen überprüfen, bevor die Datei hochgeladen wird. Da die Datei-Namen ja in einem relativ schmalen Block angezeigt werden, sollen die Datei-Namen nicht länger als 20 Zeichen sein bzw nach spätestens 19 Zeichen einen Bindestrich haben. Zudem sollen auch keine Leerzeichen im Namen enthalten sein usw.

Die Umsetzung dieser Kriterien ist ansich kein Problem, nur komme ich nicht an den Datei-Namen ran bevor diese hochgeladen wurde, weder in der Validierungsfunktion noch in der Submit-Funktion.

Vielleicht mach ich ja was falsch oder ich hab den richtigen Ansatz noch nicht gefunden. Hier mal der Code:

<?php
function my_download_new_file_forms()
{
 
$form['#attributes'] = array('enctype' => "multipart/form-data");
 
$form['my_download_upload'] = array(
   
'#type' => 'file',
   
'#title' => 'Datei Hochladen',
   
'#description' => utf8_encode('To-Do'),
    );
 
$form['my_download_upload_submit'] = array(
   
'#title'  => utf8_encode('Hochladen'),
   
'#value'  => utf8_encode('Hochladen'),
   
'#type'   => 'submit',
    );
  return
$form;
}

/**
* Submit-Fkt zum Hochladen einer neuen PDF-Datei
*/
function my_download_new_file_forms_submit($form, &$form_state)
{
 
//Zulässige Dateiendungen
 
$validators = array( 'file_validate_extensions' => array('pdf PDF'));
 
//Pfad des Ordners, wo die Uploads gespeichert werden
 
$upload_path = 'sites/default/files/downloads/';
  if(
$file = file_save_upload('my_download_upload', $validators,
   
$upload_path, $replace = FILE_EXISTS_RENAME))
  {
   
file_set_status($file, FILE_STATUS_PERMANENT);
   
drupal_set_message("Upload erfolgreich");
  } else
    {
     
drupal_set_message("Fehler beim Upload", 'error');
    }
}
?>

Ich vermute, dass man den Namen mit Hilfe des $validators - Array überprüfen kann, nur hab ich trotz längerer Suche noch keine Antwort gefunden.

‹ [gelöst] drupal_execute() [gelöst]Formular mit ahah ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi, schau dir mal das Modul

Eingetragen von Kars-T (1473)
am 13.01.2010 - 09:50 Uhr

Hi,

schau dir mal das Modul an:
http://drupal.org/project/transliteration

<?php
'#title'  => utf8_encode('Hochladen'),
?>

Das utf8_encode ist sinnlos. Deine PHP Datei sollte so oder so utf-8 sein. Wenn schon eine Funktion, dann benutz t(). In die darf aber nur englischer Text rein, da aus den Scripten Englisch erwartete wird, als Standard.

<?php
$replace
= FILE_EXISTS_RENAME
?>

Die Konstante allein tut es auch.

<?php
drupal_set_message
("Fehler beim Upload", 'error');
?>

Benutze am besten nur 'text' und nicht "text" und schon gar nicht mischen.

Und schau nochmal hier rein:
http://drupal.org/coding-standards

---

Viele Grüße,

Kars-T
XING | comm-press

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Das utf8_encode ist

Eingetragen von stebeg (463)
am 13.01.2010 - 12:02 Uhr
Zitat:

Das utf8_encode ist sinnlos. Deine PHP Datei sollte so oder so utf-8 sein.

Da ist wohl jemand von der Sollte-Seuche befallen :-)
An dieser Stelle mag das vielleicht sinnlos sein, aber bei Submit-Button, deren Titel ein oder mehrere Umlaute enthält, sah das bis jetzt immer anders aus. In dem Modul, von dem ich im Eröffnungspost einen Teil gepostet hab, befindet sich auch noch eine Funktion zum Löschen der hochgeladenen Dateien. Der Submit-Button heißt dementsprechend "Löschen". Wenn ich den Titel des Button nicht vorher utf8-codiere, dann wird mir garkein Titel angezeigt. Dass der Titel des Hochladen-Buttons auch utf8-codiert ist, ist auf Copy-Paste + meine Faulheit zurückzuführen :-)

Zitat:

Benutze am besten nur 'text' und nicht "text" und schon gar nicht mischen.

Das Rumgemische war keinesfalls beabsichtigt, sondern eher ein Flüchtigkeitsfehler.

Nun aber zurück zum eigentlichen Thema

Zitat:

schau dir mal das Modul an:
http://drupal.org/project/transliteration

Ich werd mir das Modul mal genauer anschaun. Es scheint ja laut Beschreibung genau das zu machen, wonach ich suche.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sollte

Eingetragen von Kars-T (1473)
am 13.01.2010 - 12:45 Uhr

Also das "sollte" war eigentlich nur als nettes "tu es nicht!" gedacht ;)

Wenn du so ein beschriebenes Problem hast, dann klingt das stark danach, das deine Dateien nicht utf-8 kodiert sind. Und das musst du ändern. Du wirst kein Modul finden, das das so macht und es ist einfach nicht nötig. Das ist ein Folge-Fehler, den du an der Wurzel packen "solltest" :D

---

Viele Grüße,

Kars-T
XING | comm-press

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Frage ist jetzt nur: Wo

Eingetragen von stebeg (463)
am 13.01.2010 - 13:12 Uhr

Die Frage ist jetzt nur: Wo befindet sich die Wurfel?

Firebug zeigt mit beim Untersuchen der Seite im Head folgendes an:

<meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>

Das wiederum lässt mich glauben das meine Seite UTF8-codiert ist. Meine Datenbank ist zudem auch UTF8-codiert. Ich hab also keine Ahnung wo die von dir erwähnte Wurzel zu suchen ist.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du musst dir die

Eingetragen von Kars-T (1473)
am 13.01.2010 - 13:25 Uhr

Du musst dir die Dateien-Kodierung in deinem Editor anschauen.
Was benutzt du denn?
Ist das vielleicht auf windows-1252 oder iso-8859-1?

---

Viele Grüße,

Kars-T
XING | comm-press

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ach guck einer an, wer

Eingetragen von stebeg (463)
am 13.01.2010 - 13:52 Uhr

Ach guck einer an, wer hätte gedacht, dass es am Editor liegt :-)

Vielen dank für den Hinweis.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Dynamische Ansicht von Seiteninhalt (als Tabelle?)
  • Vergabe von Berechtigungen für bestimmte Rollen; mir fehlt der Haken bzw. das „Veröffentlicht“
  • Ich brauche dringen Hilfe zu Updates oder ggf. wwie geht Composer?
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • Rolle erstellen nicht zu finden
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
Weiter

Neue Kommentare

  • Arrrrg. Nix Tabelle :-D /*
    vor 3 Wochen 4 Tagen
  • Textboxen mit Tabelle
    vor 3 Wochen 5 Tagen
  • Du sollst ja auch keine
    vor 3 Wochen 5 Tagen
  • Theme
    vor 3 Wochen 5 Tagen
  • Welches Theme benutzt du
    vor 3 Wochen 5 Tagen
  • Mit Responsive Raster hatte
    vor 3 Wochen 6 Tagen
  • Hallo Alex,um das Häkchen
    vor 3 Wochen 6 Tagen
  • Modul view_unpublished
    vor 4 Wochen 14 Stunden
  • Modul "override node options"
    vor 4 Wochen 1 Tag
  • Im Grunde ist dass ein
    vor 4 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250270
Registrierte User: 20483

Neue User:

  • Aathivithyah
  • Aoirhic
  • Stevebok

» Alle User anzeigen

User nach Punkten sortiert:
wla9463
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 69 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association