Ich habe eine Anwendung, die eine ZIP-Datei an einen Server sendet. Der Zip wird dann manipuliert und ein neuer Zip wird in der Antwort zurückgesendet.Zip kann nicht mit Go wegen falscher Mime vom Server geöffnet werden
Das Problem ist, dass die Antwort zurückgeschickt hat eine Pantomime von application/octet-stream
anstelle von application/zip
Nachricht.
Ich denke, das ist der Grund, warum der resultierende Zip kann nicht geöffnet werden archive/zip
und ich bekomme eine zip: not a valid zip file
.
Gibt es eine Möglichkeit für mich, den Mime beim Abrufen der Zip-Datei zu ändern?
Mein Code für die Zip bekommen:
func GetZipFromServer(zipname string) {
////////////////////////////////////////////////////
// Open local zip file
file, err := os.Open(zipname + ".zip")
log1.Check(err, "File open failed")
defer file.Close()
stat, err := file.Stat()
log1.Check(err, "Stat failed")
fmt.Println(stat.Size())
////////////////////////////////////////////////////
// Get new zip from server
url := "http://some_server123.com/rest/"
res, err := http.Post(url, "application/zip", file)
log1.Check(err, "Response failed")
////////////////////////////////////////////////////
// Save new zip from server as file
f, err := os.Create(zipname + ".html.zip")
log1.Check(err, "Cannot create file")
err = res.Write(f)
log1.Check(err, "Cannot write file")
err = f.Close()
log1.Check(err, "Cannot close file")
}
Sie müssten den Header festlegen, während Sie ** .zip auf dem Server verarbeiten. –
Gibt es das überhaupt, wenn ich keinen Zugriff auf den Server habe? – AppTest
Leider nicht; Der Pantomime muss serverseitig eingestellt werden. –