def upload_slow(self, localfile: str, remotefile: str, overwrite: bool = True, permission: str = '<STR_LIT>', **kwargs):
valid = self._sb.file_info(remotefile, quiet = True)<EOL>if valid is None:<EOL><INDENT>remf = remotefile<EOL><DEDENT>else:<EOL><INDENT>if valid == {}:<EOL><INDENT>remf = remotefile + self._sb.hostsep + localfile.rpartition(os.sep)[<NUM_LIT:2>]<EOL><DEDENT>else:<EOL><INDENT>remf = remotefile<EOL>if overwrite == False:<EOL><INDENT>return {'<STR_LIT>' : False, <EOL>'<STR_LIT>'     : "<STR_LIT>"+str(remotefile)+"<STR_LIT>"}<EOL><DEDENT><DEDENT><DEDENT>try:<EOL><INDENT>fd = open(localfile, '<STR_LIT:rb>')<EOL><DEDENT>except OSError as e:<EOL><INDENT>return {'<STR_LIT>' : False, <EOL>'<STR_LIT>'     : "<STR_LIT>"+str(localfile)+"<STR_LIT>"+str(e)}<EOL><DEDENT>code = """<STR_LIT>"""+remf+"""<STR_LIT>"""+permission+"""<STR_LIT>"""<EOL>buf = fd.read1(<NUM_LIT>)<EOL>if len(buf):<EOL><INDENT>self._asubmit(code, "<STR_LIT:text>")<EOL><DEDENT>else:<EOL><INDENT>code = """<STR_LIT>"""+remf+"""<STR_LIT>"""+permission+"""<STR_LIT>"""<EOL>ll = self.submit(code, '<STR_LIT:text>')<EOL>fd.close()<EOL>return {'<STR_LIT>' : True, <EOL>'<STR_LIT>'     : ll['<STR_LIT>']}<EOL><DEDENT>while len(buf):<EOL><INDENT>buf2 = '<STR_LIT>'<EOL>for i in range(len(buf)):<EOL><INDENT>buf2 += '<STR_LIT>' % buf[i]<EOL><DEDENT>self.stdin.write(buf2.encode()+b'<STR_LIT:\n>')<EOL>buf = fd.read1(<NUM_LIT>)<EOL><DEDENT>self._asubmit("<STR_LIT>", "<STR_LIT:text>")<EOL>ll = self.submit("<STR_LIT>", '<STR_LIT:text>')<EOL>fd.close()<EOL>return {'<STR_LIT>' : True, <EOL>'<STR_LIT>'     : ll['<STR_LIT>']}<EOL>
This method uploads a local file to the SAS servers file system.
localfile  - path to the local file to upload 
remotefile - path to remote file to create or overwrite
overwrite  - overwrite the output file if it exists?
permission - permissions to set on the new file. See SAS Filename Statement Doc for syntax