首页 > 解决方案 > 如何上传文件并将其发送给某人 Tkinter

问题描述

我创建了一个聊天室,用户可以在其中互相发送消息,但我想添加上传文件功能,我找到了如何做到这一点:

import tkinter as tk
from tkinter import filedialog

def UploadAction(event=None):
    filename = filedialog.askopenfilename()
    print('Selected:', filename)

root = tk.Tk()
button = tk.Button(root, text='Open', command=UploadAction)
button.pack()

root.mainloop()

但我不知道如何将文件发送给其他用户以便他们下载

所以有人可以帮我吗

标签: pythonpython-3.xtkinter

解决方案


虽然这个主题超出了主题(这个问题实际上是关于套接字而不是 tkinter),没有正确询问(请参阅如何提问),并且可能是通过 Python 中的套接字发送文件的副本,这里是你的简短描述应该为他人着想。

一般来说,传输文件是一个广泛的主题,从压缩、文件传输、校验和等。我们将集中讨论如何在两台计算机之间传输数据,sockets因为我知道这是你的意图。

根据您的实施,您应该向其他用户发送文件传输请求。然后,如果接受(接受/拒绝应该是其他用户的响应),开始传输文件。在第一步中,只需发送一个描述文件传输的标头(文件名、大小等)。然后,当被接受时,您发送内容的字节流。您可以分别将文件作为字节读取open(file,'rb')open(file,'wb')用于读/写。与元数据标头进行通信、检查可用性、管理余额等是一种很好的做法。

请注意,使用套接字是用于数据传输的低级接口。我不会重新发明;我会通过例子来学习。请参阅在 Python 帖子中通过 TCP 套接字发送文件,该帖子显示了传输文件的简洁代码。该帖子的答案中给出了他的问题(终止转移)的解决方案,但代码通常是可以的。在谷歌搜索上再过几分钟就会得到解释教程。

祝你申请好运!


推荐阅读