Tôi đang viết một máy chủ web khi đang di chuyển.http Request.FormFile: xử lý các tệp zip?
Trên một trong các trang, người dùng có thể tải lên tệp.
Tôi muốn có thể xử lý các tệp zip.
Trong gói archive/zip
, tôi chỉ nhìn thấy hai chức năng đó cho phép tôi để đọc từ một kho lưu trữ zip:
func OpenReader(name string) (*ReadCloser, error)
func NewReader(r io.ReaderAt, size int64) (*Reader, error)
tôi muốn tránh bằng văn bản và đọc lại từ đĩa,
nếu tôi muốn sử dụng chức năng thứ hai, tôi cần biết kích thước tệp đã tải lên trước khi gọi hàm.
Câu hỏi
tôi sẽ chia câu hỏi của tôi trong hai phần:
Điều gì sẽ là cách thành ngữ để đọc nội dung đã được giải nén của một tập tin zip tải lên thông qua một hình thức
multipart/form-data
html tiêu chuẩn?Làm cách nào tôi có thể nhận được kích thước thực tế của tệp được tải lên thông qua biểu mẫu html?
func(req *http.Request) { f, h, err := req.FormFile("fileTag") if err != nil { panic(err) } var fileSize int = ?? unzipper, err := zip.NewReader(f, fileSize) }
giải pháp mime-header từ câu trả lời của tôi không hoạt động? Nếu bạn đang thiếu một nội dung dài, giải pháp này thực sự rất tốt, vì tôi không nghĩ rằng có một cách để có được nó vào một bộ đệm mà không có ít nhất một bản sao nữa. – JimB