xiujunshi 发表于 2024-3-15 10:08:47

宝塔API上传下载文件


#上传文件,file_path,ypath,lpath分别为文件名,宝塔路径,本地路径
def Get_upload(self,file_path,ypath,lpath):
      #拼接URL地址
      url = self.__BT_PANEL + '/files?action=upload' #网址拼接      
      p_data = self.__get_key_data()#取签名            
      p_data['f_path'] = ypath            
      p_data['f_name'] =ypath+file_path      
      p_data['f_size'] =os.path.getsize(file_path)
      p_data['f_start'] =0
      p_data['blob'] =(file_path,open(os.path.join(lpath,file_path),'rb'),'application/octet-stream')
      #请求面板接口
      header = {}
      header['Accept']='*/*'
      header['Accept-Encoding']='zh-CN,zh;q=0.9'
      header['Connection']='keep-alive'                  
      result = requests.post(url,headers=header,data=p_data,files=p_data)
      print(result.text)
      #解析JSON数据
      return json.loads(result)
#下载文件,file_path,ypath,lpath分别为文件名,宝塔路径,本地路径   
    def Get_download(self,filename,ypath,lpath):
      #拼接URL地址   
      url = self.__BT_PANEL + '/download?filename='
      #准备POST数据
      p_data = self.__get_key_data()#取签名      
      downurl=url+os.path.join(ypath,filename).replace('/','%2F').replace('\\','%2F')      
      result = requests.get(downurl,p_data)
      print(result.text)                  
      if result.status_code == 200:
            with open(lpath+filename, 'wb') as file:
                file.write(result.content)
                print('下载成功!')
      else:
            print(f'下载失败,状态码: {result.status_code}')
      return result.status_code,filename

domino 发表于 2024-8-29 09:19:29

下载文件没搞成功,有HTTP的文档吗
页: [1]
查看完整版本: 宝塔API上传下载文件