当前位置: 首页 > 知识库问答 >
问题:

如何从多部分表单中提取文件

刘和玉
2023-03-14

我正在编写一个Go客户端,通过REST-API创建备份。带有多部分表单数据的REST-API响应到GET请求。因此,响应(类型*http.response)正文的内容如下:

--1ceb25134a5967272c26c9f3f543e7d26834a5967272c26c9f3f595caf08
Content-Disposition: form-data; name="configuration"; filename="test.gz"
Content-Type: application/x-gzip

...

--1ceb25134a5967272c26c9f3f543e7d26834a5967272c26c9f3f595caf08--

如何从响应正文中提取zip文件

我试图使用内置(net / http)方法,但这些方法需要一个请求结构。

共有1个答案

饶承宣
2023-03-14

使用mime/multipart包。假设< code>resp是< code>*http。Response,使用下面的代码迭代各个部分。

contentType := resp.Header.Get("Content-Type")
mediaType, params, err := mime.ParseMediaType(contentType)
if err != nil {
    log.Fatal(err)
}
if strings.HasPrefix(mediaType, "multipart/") {
    mr := multipart.NewReader(resp.Body, params["boundary"])
    for {
        p, err := mr.NextPart()
        if err == io.EOF {
            return
        }
        if err != nil {
            log.Fatal(err)
        }
        // p.FormName() is the name of the element.
        // p.FileName() is the name of the file (if it's a file)
        // p is an io.Reader on the part

        // The following code prints the part for demonstration purposes.
        slurp, err := ioutil.ReadAll(p)
        if err != nil {
            log.Fatal(err)
        }
        fmt.Printf("Part %q, %q: %q\n", p.FormName(), p.FileName(), slurp)
    }
}

答案中的代码通过调用log.Fata.来处理错误调整错误处理以满足应用程序的需要。

 类似资料:
  • 我已经成功地开发了一项服务,在该服务中,我阅读了在泽西岛以多部分形式上传的文件。以下是我所做工作的一个极其简化的版本: 这很好,但我有一个新的要求。除了上传的文件,我还需要处理任意数量的资源。假设这些是图像文件。 我想我应该为客户端提供一个表单,其中包含文件的一个输入,第一个图像的一个输入,以及允许向表单添加更多输入的按钮(使用AJAX或简单的纯JavaScript)。 因此,用户可以在表单中附加

  • 问题内容: 我正在寻找一种无需上传文件即可在Servlet过滤器中获取HTTP多部分请求的表单参数的方法。 request.getParameterMap()返回空。我了解这是因为请求包含多个部分。 我已经看过commons.HttpFileUpload,但是对于我的情况来说这似乎有些过分了。在此过滤器中,我仅对常规参数感兴趣,并且还不想处理文件上载。 编辑:主要问题是我需要在过滤器堆栈的下方有一

  • 我目前正在制作一个主菜单和一个你实际玩的世界的游戏。 我有一个名为的类,它继承自JPanel,并实现了,,和接口(仅包括重要部分) 我还有两个类,分别用于处理世界内部和外部的机制。 课程: 其他两个类当前都有空实体。我只是不知道怎么做。 我希望当玩家在游戏中时,类在面板上绘制,当玩家在主菜单中时,类在类中调用。我该怎么做?

  • 问题内容: 我已经成功开发了一项服务,可以读取在Jersey中以多部分形式上传的文件。这是我一直在做的极其简化的版本: 这个工作很好,但是给了我一个新的要求。除了要上传的文件之外,我还必须处理任意数量的资源。让我们假设这些是图像文件。 我想我只是为客户提供一个表单,其中包含一个文件输入,一个输入用于第一个图像以及一个按钮,以允许向该表单添加更多输入(使用AJAX或简单的纯JavaScript)。

  • 我想在API正文中以多部分形式发送以下POST请求: 上传传递两个属性(KEY)和(VALUE)发送arquivo(KEY)和(file)如何使用REST-Assured实现这一点 多部分打印https://ibb.co/0QQCkQv 尝试:

  • 我做了一个表格来捕获2个数据。 电子邮件地址 每个小组都有自己的电子表格。[根据发布的代码,每个人在同一个电子表格中都有自己的工作表。] 当用户提交表单时,表单应捕获电子邮件地址,并将数据发送到用户订阅的相应电子表格。 这就是我到目前为止所做的。我被卡住了... 有没有一种方法可以从特定的文本框/选项中检索数据...等等? 我知道的唯一方法是循环所有数据并逐个检索。。这使得我很难将两个数据链接在一