golang - Wie um zu überprüfen, multipart.Datei Informationen
Wenn ein Benutzer eine Datei hochlädt, über r.FormFile("Datei") erhalten Sie ein multipart.Datei, eine mehrteilige.FileHeader und ein Fehler.
Meine Frage ist, wie man nur so Informationen über die hochgeladene Datei zum Beispiel, es ist Größe, und wenn es ein Bild ist, es ist Baumaße, und so weiter und so Fort.
Habe ich buchstäblich habe keine Ahnung, wo zu beginnen, so dass jede Hilfe wäre toll.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Namen der Datei und den MIME-Typ kann von der erzielt werden zurückgegeben
multipart.FileHeader
.Meisten weitere meta-Daten hängen von der Art der Datei. Wenn es ein Bild ist, Sie sollte in der Lage sein zu verwenden, die
DecodeConfig
Funktionen in der standard-Bibliothek, fürPNG
,JPEG
undGIF
, um die Dimensionen (Farbe und Modell).Gibt es viele Go-Bibliotheken zur Verfügung, die für andere Datei-Typen auch, die ähnliche Funktionen haben.
EDIT: Es gibt ein gutes Beispiel auf
golang-nuts
E-mail-Gruppe.golang-nuts
post, verwendet das Beispiel dieioutil.ReadAll
- Funktion, die ist wirklich eine Komfort-Funktion. Für mehr Kontrolle, die Sie möchten, verwenden Sie dieio.ReadFull
Funktion gibt die Anzahl der bytes, die gelesen wurden. Siehe golang.org/pkg/io/ioutil/#ReadAll und golang.org/pkg/io/#ReadFullUm die Dateigröße und MIME-Typ:
Beispiel-Ausgabe:
file.(Sizer).Size()
stattmultipartFileHeader.Size
?Erhalten Sie Ungefähre Informationen über die Größe der Datei aus
Content-Length
header. Dies ist jedoch nicht empfehlenswert, da dieser header können geändert werden.Eine bessere Möglichkeit ist die Verwendung ReadFrom Methode: