Function "lmb fileUpload()"

From Limbas Wiki

Jump to: navigation, search

lmb_fileUpload

mixed lmb_fileUpload(array $file,numeric $level,array $relation=null, boolean $uploadfrom=false, array $dublicate=array(),boolen $verbose=false)

Funktion zum Upload einer oder mehrerer Dateieni ins DMS (./limbas_src/extra/explorer/filestructure.lib)

Zusammenfassung der Parameter:

  • Informationen der hochgeladenen Datei über das array $file
  • Zielordner
  • Verknüpfungsparamter
  • optionale Dateiquelle
  • Behandlung von Dublikaten


Parameter

$file

gültige Parameter einer hochgeladenen Datei

  • $file["file"] - string : absoluter Pfad der hochgeladenen Datei
  • $file["file_name"] : string -Name der Datei
  • $file["file_type"] : string - MIMETYPE der Datei
  • $file["file_archiv"] : boolean - true falls zip Archiv ausgepackt werden soll

$level

gültige Ordner ID in welche die Datei kopiert werden soll

$relation

Datensatz oder Datensätze zu welchem die Datei verknüpft werden soll. Es können Felder vom Typ Verknüpfung (field_type 11) sowie Upload (field_type 6) verwendet werden.

  • $relation["gtabid"][0] : Tabellen ID
  • $relation["fieldid"][0] : Feld ID
  • $relation["datid"][0] : Datensatz ID

$uploadfrom

autorisiert ein upload aus unterschiedlichen Quellen ohne vorheriges HTTP Upload

  • 1 : import aus internem System
  • 2 : import aus einem lokalem Pfad
  • 3 : import aus externem Storage - ohne physikDublikatealische datei

$dublicate

behandelt das Vorgehen falls die Datei schon existiert

  • $dublicate["typ"]  : overwrite, rename, versioning, skip
  • $dublicate["subj"] : version notice if versioning

$verbose

  • true : erzwingt eine detaillierte Ausgabe
  • false : die Funktion gibt nur die Datensatz ID der importieren Datei an

Rückgabewert

Array aus den verarbeiteten Dateiinformationen falls $verbose = true

  • $fl["nextid"] : die vergebene Datensatznummer der Tabelle LDMB_FILES
  • $fl["filesize"] : die Dateigröße
  • $fl["filename"] : der endgültige Dateiname
  • $fl["level"] : Die Ordner ID
  • $fl['mimetype_id'] : die MimeType ID der Tabelle LMB_MIMETYPES
  • $fl['mimetype'] : der MimeType
  • $fl['secname'] : der Physische Dateiname mit dem die Datei ins Dateisystem abgelegt wurde.
  • $fl["md5"] : der MD5 Prüfschlüssel der Datei
  • $fl["vpid"] : die Datensatz ID der referenz Datei falls die Datei versioniert wurde.


Erweiterung

Die Upload Funktion kann über die festgesetzte Funktion lmb_extendetFileUpload() erweitert werden. Dazu wird die Funktion lmb_extendetFileUpload() in einer Erweiterungsdatei benötigt. Ist diese vorhanden wird sie am Anfang des Uploadvorgangs ausgeführt. Sie kann ein Array() TRUE oder FALSE zurückgeben. Bei TRUE geschieht nichts und die Uploadfunktion wird ausgeführt. Bei FALSE bricht der Uploadvorgang ab. Falls ein Array zurückgegeben wird können die Parameter $file, $level und $relation überschrieben werden. Es ist damit möglich die hochgeladene Datei zu prüfen und den Uploadvorgang anzupassen.

mixed lmb_extendetFileUpload($file,$level,$relation)

Beispiele

Beispiel

Dieses Beispiel importiert eine zuvor hochgeladene Datei aus dem temp Ordner in das Limbas DMS. Dabei soll die Datei in den Ordner mit der ID 10 gelegt und den Namen myfile.pdf bekommen.Der Name soll automatisch umgenannt werden falls die Datei schon existiert. Nachdem die Datei importtiert wurde soll sie zusätzlich zu einem spezifischen Datensatz verknüpft werden. Die Tabelle muss dazu ein Verknüpfungsfeld mit der Detaiexplorer Erweiterung beitzen.

$level = 10;
$file["file"][0] = '/tmp/htg55565765.tmp';
$file["file_name"][0] = myfile.pdf;
$file["file_type"][0] = 'application/pdf';
$dublicate['type'][0] = 'rename';
$relation = array("datid" => $ID,"gtabid" => $gtab_id,"fieldid" => $field_id);

$output = lmb_fileUpload($file,$level,relation,null,$dublicate);


Beispiel

Dieses Beispiel importiert analog zum obigen Beispiel eine Datei mit dem Unterschied das die Datei nicht hochgeladen werden musste also schon auf dem Dateisystem existiert. Der Parameter $uploadfrom forciert das die Datei importiert wird ohne das die Prüfung is_uploaded_file() ausgeführt wird. Falls sie im DMS schon existiert wird sie durch den Parameter $dublicate['type'][0] = 'skip' ignoriert.

$level = 10;
$file["file"][0] = '/mnt/myfiles/mytest.pdf';
$file["file_name"][0] = mytest.pdf;
$file["file_type"][0] = 'application/pdf';
$dublicate['type'][0] = 'skip';
$uploadfrom = 2;

$output = lmb_fileUpload($file,$level,null,$uploadfrom,$dublicate);