日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go文件函数_上传

發布時間:2024/9/19 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go文件函数_上传 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

服務器

1.從表單獲取數據 r.FormFile("name")? ? ? ?<input type="file" name="file">

2.讀取表單數據至內存中data, err := ioutil.ReadAll(file)? ?(ioutil包流式讀寫)? ?(php是$_FILES)

3.獲取get請求的參數????fn := p.ByName("vid-id")? ? ? ? html中:action="http://127.0.0.1:9000/upload/2"

4.寫入到服務器硬盤中? err = ioutil.WriteFile(VIDEO_DIR + fn, data, 0777)? ? (PHP是move_uploadfile_to)

5.返回結果給客戶端w.WriteHeader(http.StatusCreated)????io.WriteString(w, "Uploaded successfully")

func uploadHandler(w http.ResponseWriter, r *http.Request, p httprouter.Params) {// 能夠讀取到的最大的緩沖區內容r.Body = http.MaxBytesReader(w, r.Body, MAX_UPLOAD_SIZE)// ParseMultipartForm表單的最大if err := r.ParseMultipartForm(MAX_UPLOAD_SIZE); err != nil {sendErrorResponse(w, http.StatusBadRequest, "File is too big")return }// 從表單拿到文件// file對應表單的name// 第二個是類型file, _, err := r.FormFile("file")if err != nil {log.Printf("Error when try to get file: %v", err)sendErrorResponse(w, http.StatusInternalServerError, "Internal Error")return }// 讀取到我們數據里面 data, err := ioutil.ReadAll(file)if err != nil {log.Printf("Read file error: %v", err)sendErrorResponse(w, http.StatusInternalServerError, "Internal Error")}// 獲取文件名fn := p.ByName("vid-id")// 保存文件err = ioutil.WriteFile(VIDEO_DIR + fn, data, 0777)if err != nil {log.Printf("Write file error: %v", err)sendErrorResponse(w, http.StatusInternalServerError, "Internal Error")return}// 反饋code與信息w.WriteHeader(http.StatusCreated)io.WriteString(w, "Uploaded successfully") }

表單

<!DOCTYPE html> <html> <head><meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge"><title>??????</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" type="text/css" media="screen" href="main.css" /><script src="main.js"></script> </head> <body><form enctype="multipart/form-data" action="http://127.0.0.1:9000/upload/2" method="post">{{/*1.file input*/}}<input type="file" name="file">{{/*2.submit button*/}}<input type="submit" value="uplad file"></form> </body> </html>

?

總結

以上是生活随笔為你收集整理的Go文件函数_上传的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。