大檔案上傳
服務端
import socket
import os
import json
import struct
server = socket.socket()
server.bind(('127.0.0.1',8080))
server.listen(5)
while true:
conn,addr = server.accept()
while true:
try:
head=conn.recv(4)
dic_len=struct.unpack('i',head)[0]
b_json_dic=conn.recv(dic_len)
dic=json.loads(b_json_dic.decode('utf-8'))
file_len=dic.get('file_len')
recv_len = 0 #已經接收到的資料長度
with open(dic.get('file_name'),'wb')as f:
while recv_len < file_len:
data = conn.recv(1024)
f.write(data)
recv_len+=len(data)#已接收的資料長度不停的增加,直到超過檔案長度停止
print('上傳成功')
except connectionreseterror as e:
print(e)
break
conn.close()
客戶端
import json
import os
import socket
import struct
clicent = socket.socket()#拿起**
clicent.connect(('127.0.0.1',8080))#,撥號
while true:
movie_dir = r'c:\users\administrator\desktop\新建資料夾'
movie_list = os.listdir(movie_dir)
for i,movie in enumerate(movie_list,1):
print(i,movie)
choice = input('shuru')
if choice.isdigit():
choice = int(choice)-1
if choice in range(0,len(movie_list)):
path = movie_list[choice]
file_path = os.path.join(movie_dir,path)
file_len = os.path.getsize(file_path)
res_dic =
json_d = json.dumps(res_dic)
b_json_dic = json_d.encode('utf-8')
header = struct.pack('i',len(b_json_dic))
clicent.send(header)
clicent.send(b_json_dic)
with open(file_path,'rb') as f:
for i in f:
clicent.send(i)
else:
print('not ')
else:
print('dssd')
上傳大檔案 關於大檔案上傳
js計算檔案md5使用spark md5.js,據說這個庫使用的是世界上最快的md5演算法。js對檔案切片並使用ajax上傳切片 let size file.size 獲取檔案大小 const shardsize 1024 1024 塊大小1mb let shardcount math.ceil s...
大檔案上傳
首先先要建好幾個檔案 html裡面 1238 9141589 90php裡面 1 2 username post username 3 1 接收前端傳過來的引數 4 ori file name post filename 原始檔案的檔名 5 file files file 6 tmp name fi...
大檔案上傳
html頁面 td 姓名 td td input type text name uname class uname placeholder 姓名 td tr tr td 年齡 td td input type text name age class age placeholder 年齡 td tr ...