您好,登錄后才能下訂單哦!
這篇文章給大家介紹GO語言中怎么實現(xiàn)文件上傳功能,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
代碼如下:
package main import ( "fmt" "io" "net/http" "os" ) const ( upload_path string = "./upload/" ) func helloHandle(w http.ResponseWriter, r *http.Request) { io.WriteString(w, "hello world!") } //上傳 func uploadHandle(w http.ResponseWriter, r *http.Request) { //從請求當(dāng)中判斷方法 if r.Method == "GET" { io.WriteString(w, "<html><head><title>我的第一個頁面</title></head><body><form action='' method=\"post\" enctype=\"multipart/form-data\"><label>上傳圖片</label><input type=\"file\" name='file' /><br/><label><input type=\"submit\" value=\"上傳圖片\"/></label></form></body></html>") } else { //獲取文件內(nèi)容 要這樣獲取 file, head, err := r.FormFile("file") if err != nil { fmt.Println(err) return } defer file.Close() //創(chuàng)建文件 fW, err := os.Create(upload_path + head.Filename) if err != nil { fmt.Println("文件創(chuàng)建失敗") return } defer fW.Close() _, err = io.Copy(fW, file) if err != nil { fmt.Println("文件保存失敗") return } //io.WriteString(w, head.Filename+" 保存成功") http.Redirect(w, r, "/hello", http.StatusFound) //io.WriteString(w, head.Filename) } } func main() { //啟動一個http 服務(wù)器 http.HandleFunc("/hello", helloHandle) //上傳 http.HandleFunc("/image", uploadHandle) err := http.ListenAndServe(":8080", nil) if err != nil { fmt.Println("服務(wù)器啟動失敗") return } fmt.Println("服務(wù)器啟動成功") }
關(guān)于GO語言中怎么實現(xiàn)文件上傳功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。