Enigma2 webinterface dateiupload?

  • moins...
    ich würde gern eine funktion einbauen, damit ich file per webif auf die box laden kann ohne ein ftp prog zu benutzen...


    sowas geht mit cgi-bin


    leider ist das webinterface mit twisted web gemacht (?)


    also wenn ich ne cgi bin datei aufrufe , dann krieg ich das file nur zum download angeboten, wird aber net ausgeführt :frowning_face:



    weiss einer wie man dem webif cgi beibringen kann?


    (bitte auf einfachster weise :grinning_squinting_face: )

  • Ganz einfach – lass es :smiling_face:


    Wieso nicht den einfachen Weg nehmen und die bereits existierende Resource nutzen?
    Hab die damals nach der Umstellung von web2 auf web zwar gefixt, aber wegen etwas reduziertem Funktionsumfang (afair kann der Originaldateiname nicht behalten werden) ist es nicht standardmäßig aktiviert.



    Einfach in der /usr/lib/enigma2/python/Plugins/Extensions/WebInterface/WebChilds/Toplevel.py die zwei Zeilen die den Uploader betreffen wieder ausführen (einmal der import in Zeile 12 und dann das hinzufügen der Resource in Zeile 33).
    Nach einem Neustart sollte das Skript unter /upload erreichbar sein.

    Homescreen eurer Apple-Geräte noch nicht voll genug?


    dreaMote: Fernbedienung für Dreamboxen
    Mobile WOL: Wake-on-LAN Client für iOS mit optionalem Widget
    My Home Remote: Fernkontrolle für Homematic CCU/CCU2 optimiert für mobile Benutzung

  • Ich habe das fürs d-Flash Plugin ausprobiert (man kann den Uploader auch als External Child wieder re-importieren ohne die Toplevel.py zu editieren, aber dann ist es besser gleich das Upload.py etwas aufzupolieren).


    Das Problem ist das das file das du uploadest vom python in einer variable zwischengespeichert wird. Womit dir bei größeren Files das Memory ausgeht oder du ein swapfile anlegen musst. nfi file uploaden auf die box konnte ich z.B. nur mit 128MB Swap.


    Aber für ein paar MB große files wie Fotos oder MP3 funktioniert es ganz gut, man sollte halt pfad und filename aus dem webif befehl nehmen und nicht als temporary file auf /tmp ablegen, weil dann braucht man kurzzeitig das memory sogar zweimal. Insofern stimmt das nicht das man den filenamen nicht aus dem originalrequest fischen kann nicht wirklich, codebeispiel dafür ist auskommentiert noch im dFlash (so bis 0.17 war es sogar aktiv) drinnen wo man ein nfi file raufladen kann und das den selben namen kriegt wie am PC. Nur den Pfad muss man halt sinvoll ergänzen damit es nicht im Flash landet. Bis auf das Memoryproblem hat das anstandslos funktioniert.


    Aber das dFlash ist kein Plugin das man hier verbreiten sollte :smiling_face:


    LG
    gutemine

    3 Mal editiert, zuletzt von Lost in Translation ()

  • hmm ich blick da net ganz durch mit dem python ...


    hab die funktion aktiviert mit dem upload..


    aber das mit der richtigen namens anzeige krieg ich net hin



    :pinch:

  • Im Standard Upload aus dem cvs wird auch ein temp file auf /tmp generiert. Wenn du im plugin.py vom dFlash nicht verstehst wie der sich aus einem Form das mit GET gepostet wird den Filenamen für das PUT holt mit dem er dann die Daten speichert wird es schwierig dir zu helfen. Im Prinzip ist es ja nicht schwer beim webbefehl ein file=xxxx.yyy dazuzumachen den man dann auslesen kann um den filenamen für die daten zu haben.