2016-02-26 9 views
9

Es fällt mir schwer herauszufinden, wie man Dateiuploads in Atomelektronen angehen kann. Ich würde Code schreiben, aber ich weiß nicht einmal, wo ich anfangen soll.Wie gehe ich mit lokalen Datei-Uploads in Elektron um?

In einer Standard-Web-App würde ich vom Client auf den Server, entweder über ein Standard-Postback oder mit einer Ajax-Anfrage. Ich habe einige ziemlich coole Lösungen dafür. Aber im Fall von Elektron bin ich mir nicht sicher, wo oder wie ich die Datei zurück "posten" soll. Ich denke, ich möchte nur auf den Inhalt meines <input type='file' /> von node.js zugreifen. Wie mache ich das?

Ich könnte auf den Browser-Prozess, aber ich weiß nicht, was die "Adresse" wäre. Oder muss ich in meiner App eine separate "Seite" erstellen, um nur Formularposts zu akzeptieren? Mein Hintergrund im Web-Dev ist wahrscheinlich blendet mich auf eine offensichtliche Antwort, kann jemand helfen?

EDIT

Nur ein wenig mehr Kontext hinzufügen, ich habe eine .csv-Datei, die ich dem Benutzer ermöglichen hochladen möchte. Ich werde das dann mit node-csv verarbeiten und jede zurückgegebene Zeile in den nedb-Datenspeicher der App einfügen.

+0

Was genau wollen Sie mit dieser Datei machen? –

+0

@VadimMacagon Ich möchte eine CSV-Datei importieren. siehe aktualisierte Frage – roryok

Antwort

9

Wenn Sie die Datei auf dem Computer des Benutzers verarbeiten möchten, müssen Sie die Datei nicht überall hochladen, sie ist bereits genau dort, wo Sie sie benötigen. Sie müssen lediglich einen Dialog öffnen, damit der Benutzer sein Dateisystem durchsuchen und die Datei auswählen kann, die die App verarbeiten soll. Sie können eine Schaltfläche erstellen und dialog.showOpenDialog aufrufen, wenn der Benutzer sie drückt. Dadurch erhalten Sie einen Dateinamen und Sie können dann Node's fs.readFile verwenden, um es von der Festplatte zu lesen, dann können Sie den Inhalt auf die von Ihnen gewünschte Weise bearbeiten.

+3

Ah ja natürlich! Das macht Sinn. Tatsächlich speichert das HTML-Eingabedateielement den tatsächlichen Pfad, ich kann es einfach daraus lesen und den Pfad an fs.readFile übergeben. Ich wusste, dass es etwas Offensichtliches sein würde. Vielen Dank! – roryok