xdyewu 发表于 2020-4-6 16:04:38

socket库上传文件错误。

本帖最后由 xdyewu 于 2020-4-6 16:24 编辑

第一种:
def send_file(serve_addr,tcp_socket):
    send_file_name = input("请输入要上传的文件文件名:")
    file_content = None
    file = open(send_file_name,"rb")
    file_content = file.read
    file.close()
    if file_content:
      tcp_socket.send(send_file_name.encode("utf-8"))
      tcp_socket.send(file_content)

第二种:
def send_file(serve_addr,tcp_socket):
    send_file_name = input("请输入要上传的文件文件名:")
    file_content = None
    file_content = file_del(send_file_name)
    if file_content:
      tcp_socket.send(send_file_name.encode("utf-8"))
      tcp_socket.send(file_content)
      print("文件上传成功")
    else :
      print("文件上传失败")



def file_del(send_file_name):
    try:
      date = open(send_file_name,"rb")
      file_date = date.read()
      date.close()
      return file_date
    except Exception:
      print("文件异常")


采用第二种方式出来的代码可以正常使用,而我用第一种方法出来的代码出现了这种错误提示。
“tcp_socket.send(file_content)”
”TypeError: a bytes-like object is required, not 'builtin_function_or_method'“

希望各位大佬可以跟我解释一下这种情况,我后面加.encode()也没有办法运行。

qiuyouzhi 发表于 2020-4-6 16:09:08

你打印一下那个file_content,看看他是什么

xdyewu 发表于 2020-4-6 16:28:04

qiuyouzhi 发表于 2020-4-6 16:09
你打印一下那个file_content,看看他是什么

不好意思,原来传的代码有点问题,第一种方法原来没有 file_deal方法。重新修改了。
file_count打印后是这个数据<built-in method read of _io.BufferedReader object at 0x00000158DF0CF0F0>
那个文件里面存的是hallo

wp231957 发表于 2020-4-6 16:34:09

xdyewu 发表于 2020-4-6 16:28
不好意思,原来传的代码有点问题,第一种方法原来没有 file_deal方法。重新修改了。
file_count打印后是 ...

一楼第一种第⑤行read后面是否有()

xdyewu 发表于 2020-4-6 17:18:06

wp231957 发表于 2020-4-6 16:34
一楼第一种第⑤行read后面是否有()

对了 。就这错了 。感谢感谢,小白一名,没注意到这里。太尴尬了 。
页: [1]
查看完整版本: socket库上传文件错误。