Frage zu SelectFile

Ab 4.2 gibt es ja dann auch SelectFile.

Ich selber brauche im AIO-Gateway Modul eine Datei von einem System die dann in IP-Symcon eingelesen wird. Zur Zeit muss diese auf den Rechner kopiert werden auf dem IP-Symcon läuft, damit der Import funktioniert.

Was wären die Vorraussetzungen das SelectFile funktioniert?

  • Die Windows Konsole muss dann wohl auf dem Rechner ausgeführt werden auf dem die Datei für den Import liegt ?
  • Gibt es eine Größen Beschränkung der Datei?
  • Kann ich hier jede Art von Datei Typ verwenden?
  • Komme ich dann wieder mit base64_decode($str); an den Inhalt?

Könnte hier die Dokumentation noch um ein genaues Bespiel ergänzt werden z.B. png in Medienobject importieren und ablegen, Word bzw. Textdatei Datei importieren und Teile davon in IP-Symcon in Variablen ablegen.

Schau in das Repro von SymconTest.
Die Konsole lädt die Datei hoch und der Dienst speichert diese base64encodiert in der Settings.
Also solltest du das nicht für extrem große Dateien nutzen.
Die Dateiendung kannst du vorgeben.
MedienObjekt macht da meine ich keinen Sinn diese Funktion zu nutzen, weil das kann der User direkt im Objekt machen.
Michael

Was ist denn „extrem groß“ sind das MB oder wo liegt da die Größe wo es kein Sinn macht? Geht das auch wenn keine Dateiendung vorhanden ist?

Naja… Wie groß ist deine Settings ?
Also mehr als 1-2 MB würde ich nicht nicht trauen.
Wohlgemerkt nach der base64kodierung, welche die Größe ja auch anhebt.
Dateierweiterungen sind ja ein optionaler Parameter, lass ihn doch weg.
Michael

Wie Michael schon sagte, würde ich vermeiden die Settings unnötig aufzublähen. Wie groß ist denn deine Datei? Der Typ ist egal - du musst nachher ja selber validieren was der User hochgeladen hat.

paresy

Das ist das Problem das ist nicht weis wie groß die Datei ist das kann nämlich von Fall zu Fall extrem variieren.
Es gibt Fälle da hat die Datei nur 10 - 30 kB, bei mir selber kann die dann aber auch mal fast 5 MB haben es handelt sich um JSON.

Was wäre denn eine sinnvolle Möglichkeit das Alternativ mit dem Import zu lösen? Momentan muss der User die Datei von Hand auf den Rechner mit IP-Symcon kopieren und das Verzeichnis angeben, in der die Datei liegt, dann wird diese eingelesen. Wenn man sich das händische kopieren auf den IP-Symcon Rechner sparen könnte wäre das halt ein Schritt weniger für den User und auch ein wenig einfacher, da man ja nur auf dem Rechner auf dem sich die Datei befindet die Konsole öffnen müsste und dann den Import direkt im PHP Modul durchführt.

Kann dein Modul diese Datei nicht selbst direkt laden ?
Michael

Theoretisch könnte man das SelectFile auch im „Actions“ Bereich nutzbar machen. Dann würdest du quasi in einem simplen Skript die Datei empfangen und an deinen Wunschort ablegen können ohne, dass es über die Persistenz (Property) geht.

paresy

Wahrscheinlich schon dazu kenne ich mich aber zu wenig mit dem ganzen Linux Zeugs aus und ich denke dazu ist dann wiederum ein individueller Konfigurationsaufwand notwendig damit das funktioniert also Samba oder so.

Gibt es denn eine sinnvolle Möglichkeit eine Konfigurationsdatei die sich auf irgendeinem Rechner befindet auf den Ziel Rechner mit IP-Symcon zu laden? Wie gesagt zur Zeit muss der Nutzer die Datei händisch kopieren wie er die Datei auf den Rechner mit IP-Symcon bekommt ist mir egal.

Dann wäre Paresys Idee perfekt.
Michael

Heisst könnte das muss erst noch eingebaut werden damit das im Actions Bereich geht oder ich könnte das nutzten wenn ich will?

Das müsste ich einbauen. Habe diesen use case bisher nicht gesehen.

paresy

Das Feature kommt noch im nächsten RC mit.

paresy