J'essaye d'envoyer le dossier du client au serveur en python. Il envoie sans problème, mais je veux enregistrer ce fichier reçu avec le même nom de fichier. Je ne reçois pas idée comment enregistrer ce fichier avec le même nom de fichier tel qu'il est envoyé du client à Server.The code que je l'ai écrit pour cela est:Comment envoyer un fichier du client au serveur et l'enregistrer avec le même nom de fichier?
Code client
import socket, os, shutil
from stat import ST_SIZE
HOST=raw_input("Please enter IP-address : ")
PORT=int(raw_input("Please enter PORT Number : "))
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST,PORT))
if s.recv(8)!='READY':
raw_input('Unable to connect \n\n Press any key to exit ...')
s.close()
exit()
path=raw_input("Please enter the complete PATH of your file : ")
f=open(path,'rb')
fsize=os.stat(f.name)[ST_SIZE]
s.sendall(str(fsize).zfill(8))
sfile = s.makefile("wb")
shutil.copyfileobj(f, sfile)
sfile.close()
s.close()
f.close()
Code du serveur
import socket
import shutil
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
HOST = ''
PORT = 23240
s.bind((HOST, PORT))
s.listen(3)
conn, addr = s.accept()
print 'conn at address',addr
conn.sendall('READY')
i=1
f = open(r'file_'+ str(i)+".txt",'wb')
i=i+1
print 'File size',fsize
sfile = conn.makefile("rb")
shutil.copyfileobj(sfile, f)
sfile.close()
f.write(conn.recv(fsize))
f.close()
conn.close()
s.close()
Pourquoi ne pas simplement envoyer f.name? –
côté client, je dois entrer le chemin complet du fichier. et côté récepteur, je veux recevoir ce fichier avec le même nom et le même type de fichier ... – Ruchir