8686import base64
8787import threading
8888
89+ try :
90+ from mimetypes import guess_type
91+ except ImportError :
92+ guess_type = None
8993
9094try :
9195 from secrets import randbits
@@ -1291,6 +1295,7 @@ def download_file_from_tftp_bytes(url, timeout=60, returnstats=False):
12911295
12921296def download_file_from_tftp_to_file (url , outfile , timeout = 60 ):
12931297 outfile = open (outfile , "wb" )
1298+ outfile .seek (0 , 0 )
12941299 httpbytes = download_file_from_tftp_bytes (url , timeout , False )
12951300 outfile .write (httpbytes )
12961301 outfile .close ()
@@ -3042,7 +3047,26 @@ def download_file_from_http_to_file(url, outfile, headers=None, usehttp=__use_ht
30423047 outfile .write (httpbytes )
30433048 outfile .close ()
30443049 return True
3045-
3050+
3051+ def file_list_to_file_dict (infiles = None , infields = None ):
3052+ outdict = {}
3053+ if (infiles is None ):
3054+ infiles = []
3055+ if (infields is None ):
3056+ infields = []
3057+ for files , fields in zip (infiles , infields ):
3058+ filename = os .path .basename (files )
3059+ openfile = open (files , "rb" )
3060+ openfile .seek (0 , 0 )
3061+ outdict .update ({filename : [fields , openfile ]})
3062+ return outdict
3063+
3064+ def upload_file_to_http_file (infiles , url , headers = None , usehttp = __use_http_lib__ , usesslcert = defcert , keepsession = False , insessionvar = None , httpuseragent = None , httpreferer = None , httpcookie = None , postdata = None , jsonpost = False , putfile = None , timeout = 60 , returnstats = False ):
3065+ return download_file_from_http_file (url , headers , usehttp , usesslcert , None , keepsession , insessionvar , httpuseragent , httpreferer , httpcookie , "POST" , postdata , jsonpost , infiles , putfile , timeout , returnstats )
3066+
3067+ def upload_file_to_http_from_file (infiles , infields , url , headers = None , usehttp = __use_http_lib__ , usesslcert = defcert , keepsession = False , insessionvar = None , httpuseragent = None , httpreferer = None , httpcookie = None , postdata = None , jsonpost = False , putfile = None , timeout = 60 , returnstats = False ):
3068+ infilelist = file_list_to_file_dict (infiles , infields )
3069+ return upload_file_to_http_file (infilelist , url , headers , usehttp , usesslcert , keepsession , insessionvar , httpuseragent , httpreferer , httpcookie , postdata , jsonpost , putfile , timeout , returnstats )
30463070
30473071def download_file_from_https_file (url , headers = None , usehttp = __use_http_lib__ , usesslcert = defcert , resumefile = None , keepsession = False , insessionvar = None , httpuseragent = None , httpreferer = None , httpcookie = None , httpmethod = "GET" , postdata = None , jsonpost = False , sendfiles = None , putfile = None , timeout = 60 , returnstats = False ):
30483072 return download_file_from_http_file (url , headers , usehttp , usesslcert , resumefile , keepsession , insessionvar , httpuseragent , httpreferer , httpcookie , httpmethod , postdata , jsonpost , sendfiles , putfile , timeout , returnstats )
@@ -3053,6 +3077,12 @@ def download_file_from_https_bytes(url, headers=None, usehttp=__use_http_lib__,
30533077def download_file_from_https_file (url , outfile , headers = None , usehttp = __use_http_lib__ , usesslcert = defcert , keepsession = False , insessionvar = None , httpuseragent = None , httpreferer = None , httpcookie = None , postdata = None , jsonpost = False , sendfiles = None , putfile = None , timeout = 60 ):
30543078 return download_file_from_http_to_file (url , outfile , headers , usehttp , usesslcert , keepsession , insessionvar , httpuseragent , httpreferer , httpcookie , postdata , jsonpost , sendfiles , putfile , timeout )
30553079
3080+ def upload_file_to_https_file (infiles , url , headers = None , usehttp = __use_http_lib__ , usesslcert = defcert , keepsession = False , insessionvar = None , httpuseragent = None , httpreferer = None , httpcookie = None , postdata = None , jsonpost = False , putfile = None , timeout = 60 , returnstats = False ):
3081+ return upload_file_to_http_from_file (infiles , url , headers , usehttp , usesslcert , keepsession , insessionvar , httpuseragent , httpreferer , httpcookie , postdata , jsonpost , putfile , timeout , returnstats )
3082+
3083+ def upload_file_to_https_from_file (infiles , infields , url , headers = None , usehttp = __use_http_lib__ , usesslcert = defcert , keepsession = False , insessionvar = None , httpuseragent = None , httpreferer = None , httpcookie = None , postdata = None , jsonpost = False , putfile = None , timeout = 60 , returnstats = False ):
3084+ return upload_file_to_http_from_file (infiles , infields , url , headers , usehttp , usesslcert , keepsession , insessionvar , httpuseragent , httpreferer , httpcookie , postdata , jsonpost , putfile , timeout , returnstats )
3085+
30563086# --------------------------
30573087# TCP/UDP transport (receiver + sender)
30583088# --------------------------
0 commit comments