代码之家  ›  专栏  ›  技术社区  ›  Rahul Ganguly

上传文件的mime类型检查golang

  •  2
  • Rahul Ganguly  · 技术社区  · 7 年前

    我正在尝试在我的服务器上上载文件的mime类型。

    .xlsx和.docx文件的mime类型出现在application/zip中。我试图解压缩文件并读取类型为“_rels/.rels”的文件。我怀疑的是,在读取这个特定的文件时,我应该为读取该文件保留的最大大小是多少?如果目标是“xl/workbook.xml”,我可以假定它是XLSX类型吗?

    我的代码如下

     file, fileHeader, err := r.FormFile("file")
    
    buffer := make([]byte, 512)
    _, err = file.Read(buffer)
    if err != nil {
        fmt.Println(err)
    }
    
    contentType := http.DetectContentType(buffer)
    if contentType == "application/zip" {
        r, err := zip.NewReader(file, fileHeader.Size)
        if err != nil {
            fmt.Println(err)
        }
        for _, zf := range r.File {
            if zf.Name == "_rels/.rels" {
                fmt.Println("rels")
                rc, err := zf.Open()
                if err != nil {
                    fmt.Println("Rels errors")
                }
                const BufferSize = 1000
                buffer := make([]byte, BufferSize)
                defer rc.Close()
                bytesread, err := rc.Read(buffer)
                if err != nil {
                    if err != io.EOF {
                        fmt.Println(err)
                    }
                }
    
                fmt.Println("bytes read: ", bytesread)
                fmt.Println("bytestream to string: ", string(buffer[:bytesread]))
                fmt.Println(rc)
            }
        }
    }
    
    
    var arr []byte
    w.Header().Set("Content-Type", "application/json")
    w.Write(arr)
    

    }

    我得到的输出是

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Relationships     xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Target="docProps/app.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Target="docProps/core.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml"/></Relationships>
    

    关于如何阅读.doc或.xls有什么提示吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   mh-cbon    6 年前