max系统下上传图片,能显示图片名,但是图片内容是空的
来源:2-2 编码实战:实现上传接口

杰神
2019-03-18
package handler
import (
"fmt"
"io"
"io/ioutil"
"net/http"
"os"
)
func UploadHandler(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,"Internel server error")
return
}
io.WriteString(w,string(data))
}else {
// 接收文件流 以及存储到本地目录
file,head,err :=r.FormFile("file")
if err!=nil{
fmt.Printf("Failed to get data,err:%s\n",err.Error())
return
}
defer file.Close()
newFile,err :=os.Create("./uploadDir/"+head.Filename)
if err!=nil{
fmt.Printf("Failed to create file,err:%s\n",err.Error())
return
}
newFile.Close()
_,err1 := io.Copy(newFile,file)
if err!=nil{
fmt.Printf("err=%v",err1)
return
}
http.Redirect(w,r,"/file/upload/suc",http.StatusFound)
}
}
// 上传成功
func UploadSucHandler(w http.ResponseWriter,r *http.Request) {
io.WriteString(w,"Upload finished!")
}
写回答
3回答
-
同学你好,试试把这行代码:
newFile.Close()
改成:
defer newFile.Close()
应该是要在函数将要退出时再关闭文件句柄。
022019-03-18 -
杰神
提问者
2019-03-18
具体代码入下图
00 -
杰神
提问者
2019-03-18
这个编辑器,代码格式化好丑啊
012019-03-18
相似问题