"云存储"系统原理之简单文件上传
接口描述 | 接口URL |
---|---|
文件上传接口 | POST file/upload |
文件查询接口 | GET file/query |
文件下载接口 | GET file/download |
文件删除接口 | POST file/delete |
文件修改接口 | POST file/upload |
package handle
import (
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
)
func UploadFile(w http.ResponseWriter,r *http.Request){
if r.Method == "GET"{
//读取html数据
data,err := ioutil.ReadFile("./static/view/index.html")
if err != nil {
//如果失败就将信息写入响应钟
io.WriteString(w, "失败")
return
}
fmt.Println(w)
io.WriteString(w, string(data))
}else if(r.Method=="POST"){
file,head,err := r.FormFile("file")
if err != nil{
fmt.Printf("Failed to get data,err%s\n",err.Error())
return
}
defer file.Close()
dir, err := os.Getwd()
if err != nil {
fmt.Printf("Failed to dir file,err:%s\n",err.Error())
}
NewFile,err := os.Create(dir+"/tmp/"+head.Filename)
if err != nil{
fmt.Printf("Failed to create file,err:%s\n",err.Error())
return
}
defer NewFile.Close(