Remote-Desktop-App/structures/file_handler.py

37 lines
1015 B
Python

from time import sleep
from tkinter import filedialog
from os import path, environ, makedirs
class FileHandler:
def __init__(self, app):
self.app = app
def choose_file(self):
self.app.send("HANDLER", "file_dialog_open")
sleep(0.5)
filename = filedialog.askopenfilename(title="Select file to transfer")
sleep(0.5)
self.app.send("HANDLER", "file_dialog_close")
if filename:
self.send_file_to_server(filename)
def send_file_to_server(self, filepath):
with open(filepath, "rb") as file:
data = file.read()
filename = filepath.split("/")[-1]
# self.app.protocol.transport.write("stop_share_screen".encode())
# sleep(1)
self.app.send("FILE", filename, data)
def receive_file(self, filename, data):
downloads_folder = path.join("C:", environ.get('HOMEPATH'), 'Downloads')
file_path = path.join(downloads_folder, filename)
makedirs(downloads_folder, exist_ok=True)
with open(file_path, 'wb') as file:
file.write(data)
self.app.screen_share_handler.active = True