docs: def upload(self, array, fields=None, table="MyDB", configfile=None):
          """
          Upload an array to a personal database using SOAP POST protocol.
          http://skyserver.sdss3.org/casjobs/services/jobs.asmx?op=UploadData
          """
  
          wsid=''
          password=''
          if configfile is None:
              configfile = "CasJobs.config"
          logger.info("Reading config file: %s"%configfile)
          lines = open(configfile,'r').readlines()
          for line in lines:
              k,v = line.strip().split('=')
              if k == 'wsid': wsid = v
              if k == 'password': password = v
  
          logger.info("Attempting to drop table: %s"%table)
          self.drop(table)
       
          SOAP_TEMPLATE = """
          <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                           xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                           xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
            <soap12:Body>
              <UploadData xmlns="http://Services.Cas.jhu.edu">
                <wsid>%s</wsid>
                <pw>%s</pw>
                <tableName>%s</tableName>
                <data>%s</data>
                <tableExists>%s</tableExists>
              </UploadData>
            </soap12:Body>
          </soap12:Envelope>
          """
       
          logger.info("Writing array...")
          s = io.StringIO()
          np.savetxt(s,array,delimiter=',',fmt="%.10g")
          tb_data = ''
          if fields is not None: 
              tb_data += ','.join(f for f in fields)+'\n'
          tb_data += s.getvalue()
       
          message = SOAP_TEMPLATE % (wsid, password, table, tb_data, "false")
          
          #construct and send the header
          webservice = httpcl.HTTP("skyserver.sdss3.org")
          webservice.putrequest("POST", "/casjobs/services/jobs.asmx")
          webservice.putheader("Host", "skyserver.sdss3.org")
          webservice.putheader("Content-type", "text/xml; charset=\"UTF-8\"")
          webservice.putheader("Content-length", "%d" % len(message))
          webservice.endheaders()
          logger.info("Sending SOAP POST message...")
          webservice.send(message)
           
          # get the response
          statuscode, statusmessage, header = webservice.getreply()
          print("Response: ", statuscode, statusmessage)
          print("headers: ", header)
          res = webservice.getfile().read()
          print(res)