精华内容
下载资源
问答
  • 2020-11-11 15:15:50

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块。

    当然你也可以利用ftplib从ftp站点下载文件。此外Python还提供了另外一种方法requests。

    下面来看看三种方法是如何来下载zip文件的:

    方法一:

    import urllib

    import urllib2

    import requests

    print "downloading with urllib"

    url = "http://www.pythontab.com/test/demo.zip"

    print "downloading with urllib"

    urllib.urlretrieve(url, "demo.zip")

    方法二:

    import urllib2

    print "downloading with urllib2"

    url = "http://www.pythontab.com/test/demo.zip"

    f = urllib2.urlopen(url)

    data = f.read()

    with open("demo2.zip", "wb") as code:

    code.write(data)

    方法三:

    import requests

    print "downloading with requests"

    url = "http://www.pythontab.com/test/demo.zip"

    r = requests.get(url)

    with open("demo3.zip", "wb") as code:

    code.write(r.content)

    看起来使用urllib最为简单,一句语句即可。当然你可以把urllib2缩写成:

    f = urllib2.urlopen(url)

    with open("demo2.zip", "wb") as code:

    code.write(f.read())

    以上只做转载备忘,实际是参考这篇

    更多相关内容
  • Flask——下载文件接口

    千次阅读 2021-02-20 19:51:02
    文章目录业务背景实现思路项目代码 业务背景 近期用Python-Flask开发项目遇到一个多文件打包下载的业务接口,文件格式有Excel、图片...根据数据库查找到的文件(图片、视频)URL地址下载文件,并存储到第一步生成的文

    业务背景

    • 近期用Python-Flask开发项目遇到一个多文件打包下载的业务接口,文件格式有Excel、图片文件、视频文件打包成zip下载。
    • 前端通过接口发送ID,后端通过ID查询数据库相关数据并生成Excel文档数据库查出图片和视频地址之后下载到服务器、打包成压缩包返回给前端。

    实现思路

    1. 后端根据ID创建文件夹到服务器目录
    2. 查找数据库数据生成Excel文件,并存储到第一步生成的文件夹内
    3. 根据数据库查找到的文件(图片、视频)URL地址下载文件,并存储到第一步生成的文件夹内
    4. 将文件夹打包zip
    5. 返回给前端

    项目代码

    • 项目基于Flask
    • 篇幅原因只贴出本下载接口业务相关代码
    # 添加下载API接口
    # Download
    api.add_resource(Download, "/activities/download/<int:activities_id>")
    
    • 模型类:
    # coding: utf-8
    # extensions 为自定义模块
    from extensions import db
    import datetime
    
    class Activities(db.Model):
        """
        活动
        """
        __tablename__ = 'activities'
        id = db.Column(db.Integer, primary_key=True)
        # 活动名称
        active = db.Column(db.String(64))
        # 活动类型
        active_type = db.Column(db.String(64))
        # 活动持续时间
        active_time = db.Column(db.Integer)
        # 活动对象
        active_object = db.Column(db.String(164))
        # 描述
        description = db.Column(db.String(164))
        # 图片 数据库存储格式为: ["url","url"]
        image = db.Column(db.String(1024))
        # 视频 数据库存储格式为: ["url","url"]
        video = db.Column(db.String(1024))
    
        # 创意
        idea_name = db.Column(db.String(164))
        # 学习
        learn_name = db.Column(db.String(164))
        # learn_id
        learn_id = db.Column(db.String(164))
    
        # 创建时间
        create_time = db.Column(db.DateTime, default=datetime.datetime.now)
        # 修改时间
        update_time = db.Column(db.DateTime, default=datetime.datetime.now, onupdate=datetime.datetime.now)
        # is_del
        is_delete = db.Column(db.Integer, default=0)
        # 状态
        status = db.Column(db.Integer, default=0)
    
    • 核心代码:
    from flask import make_response, send_from_directory
    import os, zipfile, re, xlsxwriter, requests
    # PS 数据库使用SQLAlchemy 导入自己的模型类
    from models import Activities
    
    class Download(Resource):
        def get(self, activities_id):
            # 1. 在项目目录内创建static文件夹
            path=os.path.abspath(os.path.dirname(os.path.dirname(__file__)))+"/static/"
            fileDownloadPath = path.replace('\\', '/')
            filePath = fileDownloadPath+ str(activities_id)+"/"
            if os.path.exists(filePath):
                shutil.rmtree(filePath)
            os.makedirs(filePath)
            
            #  2.数据库查找出数据存入excel
            object = Activities.query.filter(and_(Activities.id == activities_id, Activities.is_delete != 1)).first()
            # 自定义存储方法
            create_workbook(object, filePath+"Active.xlsx")
            
            # 3. 存储图片 存储视频
            if object.image is not None:
                imageUrl = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', str(object.image))
                if imageUrl is not None:
                    for data in imageUrl:
                    	# 自定义文件下载方法
                        getFile(filePath, data, "Image"+str(imageUrl.index(data)))
            if object.video is not None:
                videoUrl = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', str(object.video))
                if videoUrl is not None:
                    for data in videoUrl:
                    	# 自定义文件下载方法
                        getFile(filePath, data, "Video" + str(videoUrl.index(data)))
                        
            # 4. 自定义打包方法
            make_zip(filePath, fileDownloadPath+str(activities_id)+".zip")
            
            # 5. 返回zip
            response = make_response(
                send_from_directory(fileDownloadPath, str(activities_id)+".zip", as_attachment=True))
            return response
    
    # 生成Excel
    def create_workbook(object, filePath):
        # 创建Excel文件,不保存,直接输出
        workbook = xlsxwriter.Workbook(filePath)
        worksheet = workbook.add_worksheet("sheet")
        title = ["Activity Types", "Activity Details", "Duration Hours", "With Whom",  "Description", "Learnings", "Ideas"]
        worksheet.write_row('A1', title)
        worksheet.write_row('A2', [str(object.active),
                                   str(object.active_type),
                                   str(object.active_time),
                                   str(object.active_object),
                                   str(object.description),
                                   str(object.learn_name),
                                   str(object.idea_name)
                                   ])
        workbook.close()
    
    # 下载文件
    def getFile(filePath, url, fileName):
        response = requests.get(url).content
        with open(filePath+fileName+url[-4:], 'wb') as f:
            f.write(response)
        print ("Sucessful to download "+fileName)
    
    # 打包zip
    def make_zip(filePath, source_dir):
      zipf = zipfile.ZipFile(source_dir, 'w')
      pre_len = len(os.path.dirname(filePath))
      for parent, dirnames, filenames in os.walk(filePath):
        for filename in filenames:
          pathfile = os.path.join(parent, filename)
          arcname = pathfile[pre_len:].strip(os.path.sep)
          zipf.write(pathfile, arcname)
      zipf.close()
    
    展开全文
  • java--接口--下载文件--可支持断点续传;可配合我的文章使用; 开箱即用;端口8080;开箱即用;端口8080
  • 上传下载文件接口测试

    千次阅读 2019-11-15 14:42:01
    在做接口测试的过程中,我们会遇到需要处理文件上传和下载的情况,我们可以使用Jmeter来完成文件的上传下载处理,本文提供两个小示例来展示如何使用Jmeter完成文件上传和文件下载并保存的功能 首先来看看普通的Http...

    简介

    在做接口测试的过程中,我们会遇到需要处理文件上传和下载的情况,我们可以使用Jmeter来完成文件的上传下载处理,本文提供两个小示例来展示如何使用Jmeter完成文件上传和文件下载并保存的功能

    首先来看看普通的Http接口请求的过程:

    填写服务器环境信息

    填写接口请求方法和接口路径

    填写参数信息

    发送请求

    接受响应

    文件处理上传

    文件上传的处理完全遵循上述流程,只需要在步骤3中去申明请求的类型是multipart/form-data和相应的Content-Type

    multipart/form-data是Http协议规定的一种表单类型,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表明文件类型

    Content-Type: 互联网媒体类型;也叫做MIME类型,在Http协议消息头中,使用Content-Type来表示具体请求中的媒体类型信息,可以是:

    image/gif :gif图片格式

    application/pdf :pdf格式

    application/msword:Word文档格式

    application/octet-stream:二进制流

    binary:相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件

    示例:上传图片到baidu实现baidu搜图

    在HttpSampler里,正常填写请求参数
    在这里插入图片描述
    切换到File Upload 参数页,填写文件路径和MimeType(Content-Type)即可
    在这里插入图片描述
    运行脚本,查看请求数据,图片被以二进制形式的表单参数传递到服务器
    在这里插入图片描述
    成功返回响应结果
    在这里插入图片描述
    文件下载处理

    文件下载的步骤也和普通的Http请求一样,只不过返回的是二进制的文件流,需要额外添加请求后置处理器去保存文件到本地电脑上,此处可以通过添加BeanshellPostProcessor来实现文件的保存和文件内容的解析。Beanshell是一种Java脚本语言,本示例展示如何把文件下载保存到本地:

    发起图片下载请求
    在这里插入图片描述
    添加Beanshell Post Processor,使用内置变量prev获取接口响应数据,并通过Java代码把响应的二进制流保存到本地E盘
    在这里插入图片描述
    运行脚本,查看结果和本地文件
    在这里插入图片描述
    如果想解析文件内容可以使用Java来读取文件并进行值得校验
    在这里插入图片描述
    作  者:Testfan Kitty

    出  处:微信公众号:自动化软件测试平台

    版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

    展开全文
  • postman导出下载文件接口实例

    千次阅读 2021-01-21 11:33:29
    postman导出下载文件接口实例 场景 有一个导出报表的功能,页面上点击了导出,下载了报表 实例 接口上,点击send and download,选择存放路径,即可完成发送请求并下载

    postman导出下载文件接口实例

    场景

    有一个导出报表的功能,页面上点击了导出,下载了报表
    在这里插入图片描述

    实例

    接口上,点击send and download,选择存放路径,即可完成发送请求并下载
    在这里插入图片描述

    展开全文
  • 主要介绍了Java程序部署到服务器上,接口请求下载文件失败/文件为空/文件名不对,本文给大家分享错误原因及解决方法,需要的朋友可以参考下
  • 接口文档模板.docx

    2020-05-06 12:52:20
    整理的超详细的接口测试文档,模板,教你怎么分析接口,怎么梳理接口文档整理的超详细的接口测试文档,模板,教你怎么分析接口,怎么梳理接口文档整理的超详细的接口测试文档,模板,教你怎么分析接口,怎么梳理接口...
  • JAVA使用浏览器下载文件接口

    千次阅读 2018-10-16 14:05:00
    前端页面调用后台接口,使用浏览器默认下载的方法。 public ResponseEntity&lt;byte[]&gt; test() throws Exception { String Path = "";//要下载文件路径 File file = new File(Path); ...
  • 按照一般请求接口,配置好接口地址以及参数,点击Send and Download 按钮,执行请求的同时会下载文件
  • vue 接口请求下载文件

    2022-04-28 17:21:30
    在api文件中的接口定义: export function downLoadFile (q) { return axios({ url: '/file/downLoadFile', method: 'get', params: q, responseType: 'blob' }) } 下载按钮的调用方法: down(id) { ...
  • postman测试下载接口

    千次阅读 2021-08-10 19:25:01
    postman是个很好的测试工具,那怎么测试下载接口呢,请看下面: 教程:
  • @GetMapping("/download/{fileName}") @ResponseBody public ResponseEntity downloadFile(@PathVariable(name = "fileName") String ... } 以上的代码可以用来下载文件,fileUploadRootDir 这个变量是文件的存储路径。
  • .Net WebAPI 高速下载文件接口实现

    千次阅读 2017-09-30 14:03:54
    接触WebAPI一年多了,感觉是个承上启下,开创未来的技术。老一辈程序员写接口就像写...在开发的过程中遇到了一些问题,大部分都可通过百度找到解决方案,但是有一个问题却一直没有很好地解决,那就是文件下载速度的问
  • swagger接口下载文件

    2021-10-08 17:06:26
    注意!!!!!!!!!!!!swagger下载文件是损坏的!!!!!!!!!! 所以在浏览器直接输入一下路径就能下载
  • 学习Java的文件上传/下载需要先明白一下几点: 1、下载的资源,有两种: 1)、本地文件:即项目运行时可访问的文件目录,比如,在本机Idea中运行一个 fileServer,...2、下载方式: 就是谁来获取这些“下载文件”,.
  • JAVA中的通用文件下载接口

    千次阅读 2021-05-28 16:19:06
    本文记录下JAVA中的通用文件下载接口,记录下。 文章目录概述 概述 /** * 通用下载请求 * * @param filePathName 文件路径 */ @GetMapping("common/download") @ApiOperation(value = "下载接口,传入文件全...
  • Jmeter接口测试-文件上传/文件下载

    千次阅读 2022-01-07 15:11:26
    在创建Jmeter脚本之前,首先获取文件上传/下载接口需求(接口文档)或者通过抓包的方式来获取,明确请求链接、请求方法、请求头、请求体、返回数据等信息。 2、文件上传 例如:上传图片 (1)请求头,内容类型...
  • 为前段提供操作后台上传的磁盘空间的RESTful接口,主要完成对指定路径的文件列出,新建文件,修改文件,删除文件以及文件夹等基本操作
  • File接口提供了与文件相关的信息,并且运行JavaScript在web页面上去访问文件中的内容。接下来通过本文给大家介绍HTML5 File接口在web页面上使用文件下载功能,需要的的朋友参考下
  • Python接口下载文件

    千次阅读 2020-06-08 23:01:55
    #!/usr/bin/env python ...1.按照流的方式进行下载 2.存储在某个文件中 ''' import requests import shutil import time class DownLoadFile(): def readyDatas(self): ''' 准备数据:固定参数 :
  • 下载文件--接口

    千次阅读 2020-07-06 11:22:45
    @RequestMapping(value = "download",method = RequestMethod.GET) public ResponseEntity<byte[]> download(HttpServletResponse response, ... //预下载文件路径****** String preDownload_path = "//172.1.
  • API接口文档模版.zip

    2021-07-23 15:29:39
    非常简洁的API接口文档模版,一看就懂,对接的人看到此文档会觉得开发人员非常友好!下载收藏起来吧
  • springboot文件上传下载

    2019-03-31 03:59:33
    springboot文件上传下载
  • swagger 接口文档

    2018-08-26 18:29:10
    本文整理了 spring boot + jpa+mysql+redis +swagger+yml等技术,实现了微服务restFul 风格的demo,下载即运行[http://localhost:8080/swagger-ui.html 进行文档展示] [http://localhost:8080/user/ma 访问接口]
  • 本次测试的是文件下载接口文件是PDF文档,步骤如下: 1、通过jmeter的录制功能,获取了文件下载接口的地址和参数,和其他的HTTP请求一样的配置 2、执行此接口后,察看结果树,点击下载接口的结果,可以看到...
  • GET方式: func_export(){ let url = "/xxx/xxx/xxx/downloadFile?... // 定义请求完成的处理函数,...注意事项:POST方式的下载,使用axios会导致数据损坏,下载到的文件会发生错误,所以使用原生的XHR来处理
  • Jmeter接口测试遇到文件上传下载接口如何测试?调试成功后的脚本,完全step by step教程,轻松上手
  • CRMEB源码后端接口文档文档标记清晰,md格式,可自由存储,CRMEB系统是一个采用前后端分离开发的新零售商城系统,非常容易二次开发!
  • Django上传下载文件接口

    千次阅读 2018-12-21 17:26:37
    背景: 使用Django 文件上传下载接口 1.上传文件接口 1.1 上传文件页面 uploads.html &amp;amp;lt;!DOCTYPE html&amp;amp;gt; &amp;amp;lt;html lang=&amp;quot;en&amp;quot;&amp;amp;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 735,995
精华内容 294,398
关键字:

下载文件接口