39 lines
653 B
Go
39 lines
653 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"labix.org/v2/mgo"
|
||
|
//"labix.org/v2/mgo/bson"
|
||
|
"net/http"
|
||
|
)
|
||
|
|
||
|
func storeFile(r *http.Request) {
|
||
|
f, header, err := r.FormFile("epub")
|
||
|
if err != nil {
|
||
|
panic(err) // FIXME
|
||
|
}
|
||
|
defer f.Close()
|
||
|
// FIXME: check the name exist
|
||
|
fw, err := os.Create("new/" + header.Filename)
|
||
|
if err != nil {
|
||
|
panic(err) // FIXME
|
||
|
}
|
||
|
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)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func uploadHandler(coll *mgo.Collection, w http.ResponseWriter, r *http.Request) {
|
||
|
if r.Method == "POST" {
|
||
|
storeFile(r)
|
||
|
}
|
||
|
|
||
|
loadTemplate(w, "upload", nil)
|
||
|
}
|