This repository has been archived on 2025-03-01. You can view files and clone it, but cannot push or open issues or pull requests.
trantor/upload.go

47 lines
804 B
Go
Raw Normal View History

2012-08-15 11:40:19 +02:00
package main
import (
"os"
"labix.org/v2/mgo"
//"labix.org/v2/mgo/bson"
"net/http"
)
func storeFile(r *http.Request) error {
2012-08-15 11:40:19 +02:00
f, header, err := r.FormFile("epub")
if err != nil {
return err
2012-08-15 11:40:19 +02:00
}
defer f.Close()
// FIXME: check the name exist
fw, err := os.Create("new/" + header.Filename)
if err != nil {
return err
2012-08-15 11:40:19 +02:00
}
defer fw.Close()
const size = 1024
var n int = size
buff := make([]byte, size)
for n == size {
n, err = f.Read(buff)
fw.Write(buff)
}
return nil
2012-08-15 11:40:19 +02:00
}
func uploadHandler(coll *mgo.Collection, w http.ResponseWriter, r *http.Request) {
status := ""
2012-08-15 11:40:19 +02:00
if r.Method == "POST" {
err := storeFile(r)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
status = "Upload successful."
2012-08-15 11:40:19 +02:00
}
loadTemplate(w, "upload", status)
2012-08-15 11:40:19 +02:00
}