2016-07-11 12 views
0

Ich benutze Filezilla zu ftp-Dateien die ganze Zeit bei meinem Job. Ich möchte anderen Leuten Zugriff auf ftp-Dateien geben, aber wir wollen nicht, dass sie den vollen Zugriff haben, den filezilla bietet. Ich habe versucht, ein grundlegendes Python-Skript zu erstellen, das Folgendes tun würde: 1. Lassen Sie einen Benutzer eine Datei aus einem Dateidialogfeld auswählen 2. nehmen Sie diese Datei und laden Sie sie auf den FTP-Server 3. Werfen Sie den Benutzer zurück a Nachricht sagt, hey Ihre Datei wurde erfolgreich hochgeladen.Mit tkinter eine FTP-Anwendung erstellen, die Datei aus Dialogfeld

Ich bin erfolgreich Verbindung zum FTP-Server, wenn ich einen Dateinamen, der in meinem Python-Stammverzeichnis ist, fest codiere. Ich habe Schwierigkeiten, eine Funktion mit einem Parameter an die tkinter-Taste zu übergeben. Ich möchte, dass die Datei von einer Funktion empfangen und dann von einer anderen Funktion verarbeitet wird. Jede Hilfe wäre sehr dankbar, ich bin eine große Noob Python und ich bin sicher, ich bin etwas fehlt offensichtlich ...

import sys 
from ftplib import FTP 
from Tkinter import * 
import tkFileDialog 
#import Tkinter as ttk 

def launch_file_dialog_box(): 
    raw_filename = tkFileDialog.askopenfilename() 
    return raw_filename 


def upload_file_to_FTP(raw_filename): 
## first thing we do is connect to the ftp host 
    ftp = FTP('') 
    ftp.login(user = '', passwd='') 
    ftp.cwd("") 
    ftp.set_pasv(False) 
    file_name = raw_filename 
    file = open(file_name, 'rb') 
    ftp.storbinary('STOR ' + file_name, file) 
    file.quit() 



App = Tk() 
App.geometry("600x400+200+200") 
App.title("Upload a Program Flyer to the Library Website") 
Appbutton = Button(text='Choose a File to Upload', command = launch_file_dialog_box).pack() 
Appbutton_FTP = Button(text='Upload File to FTP Server', command = upload_file_to_FTP(raw_filename)).pack() 

App.mainloop() 

Antwort

0

Verwendung self Stichwort gleiche Variable über mehrere Funktionsdefinition zu verwenden. Klasse erstellen und Objekt später erstellen call help()

import sys 
from ftplib import FTP 
import Tkinter as tk 
import tkFileDialog 

#import Tkinter as ttk 

class App(tk.Tk):  
    def __init__(self): 
     tk.Tk.__init__(self) 
     self.geometry("600x400+200+200") 
     self.title("Upload a Program Flyer to the Library Website") 
     self.Appbutton = tk.Button(text='Choose a File to Upload', command = self.launch_file_dialog_box).pack() 
     self.Appbutton_FTP = tk.Button(text='Upload File to FTP Server', command = self.upload_file_to_FTP).pack() 
    def launch_file_dialog_box(self): 
     self.raw_filename = tkFileDialog.askopenfilename() 
    def upload_file_to_FTP(self): 
    ## first thing we do is connect to the ftp host   
      ftp = FTP('') 
      ftp.login(user = '', passwd='') 
      ftp.cwd("") 
      ftp.set_pasv(False) 
      file_name = self.raw_filename 
      file = open(file_name, 'rb') 
      ftp.storbinary('STOR ' + file_name, file) 
      file.quit() 
app = App() 
app.mainloop()