宝塔618特惠活动,企业版999元/年,宝塔SSL证书买1送1!限时抢购!查看活动
当前位置:论坛首页 > Linux面板 > 讨论

宝塔API上传下载文件

发表在 Linux面板2024-3-15 10:08 [复制链接] 1 2671


#上传文件,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

使用道具 举报 只看该作者 回复
发表于 2024-8-29 09:19:29 | 显示全部楼层
下载文件没搞成功,有HTTP的文档吗
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

普通问题处理

论坛响应时间:72小时

问题处理方式:排队(仅解答)

工作时间:白班:9:00 - 18:00

紧急运维服务

响应时间:3分钟

问题处理方式:宝塔专家1对1服务

工作时间:工作日:9:00 - 18:30

宝塔专业团队为您解决服务器疑难问题

点击联系技术免费分析

工作时间:09:00至18:30

快速回复 返回顶部 返回列表