我有一些文件头,通过GET请求的响应发送,以被压缩的恢复问题。这里的主要问题是我想摆脱Go为文件设置的默认日期“11月30日,1979”(一旦文件被压缩),而不是现在的日期。但是,我不知道如何修改,甚至不知道如何从文件中检索头文件,因为我从响应体接收到的是一个io.ReadCloser类型。
下面是当前代码
archive := zip.NewWriter(w)
attachment := "attachment; filename=someZipFile.zip")
c.Writer.Header().Set("Content-Disposition", attachment)
for i := 0; i < len(bodies); i++ { // bodies are response bodies, corresponding to "downloaded" files
defer bodies[i].Close()
fmt.Println(filenames[i])
w, err := archive.Create("someZipFile/" + filenames[i])
if err != nil {
fmt.Println("File couldn't be created")
return true
}
if _, err := io.Copy(w, bodies[i]); err != nil {
fmt.Println("File couldn't be written")
return true
}
}
archive.Close()
我想澄清我能做什么,是否创建一个新的头或编辑现有的,如果前者,如何获得文件头。在最坏的情况下,找出一个全新的解决方案。
2条答案
按热度按时间9vw9lbht1#
Create是一个调用CreateHeader的helper方法。直接调用文件头指定文件元数据:
更改调用以创建存档文件,如下所示。请按原样使用问题中的其他代码。
2w2cym1i2#
感谢@eagergopher的回复,我能够构建一个适当的解决方案
这是结果