Skip to content
Advertisement

How to upload a file to server with Tkinter filedialog

I have a client that let user to browse a file and upload to a server. Currently I’m just using command terminal to operate the program. When user types in fup in the terminal, the program will ask for filename and the file will be uploaded to the server if the filename input by user is valid.

So, what I want now is letting user to browse any file directory from a GUI without typing the filename to upload. I’ve tried to implement filedialog but it seems like not working. When I browse and upload a file, the server does not receive any new file. I am stuck with issues almost a week already but still couldn’t find any solution. Hope someone could help me. Thanks in advance.

Client.py

JavaScript

Server.py

JavaScript

**After I click on upload and it show uploaded compelte, but the server doesn’t receive any new file. enter image description here

Advertisement

Answer

Since you have used filedialog.askopenfilename() to get the filename which is a full pathname, like for example C:/Users/heng/PycharmProjects/testtest/New System/test.txt. So the server gets the same full pathname and try to create the output file. But it will fail if C:/Users/heng/PycharmProjects/testtest/New System/ does not exists in server side.

To fix the issue, either sending the filename part (without the directory information) in client side:

JavaScript

or remove the directory information in server side:

JavaScript
User contributions licensed under: CC BY-SA
6 People found this is helpful
Advertisement