午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > Go Gin實現文件上傳下載的示例代碼

Go Gin實現文件上傳下載的示例代碼

熱門標簽:仙桃400電話辦理 不封卡外呼系統 寧波語音外呼系統公司 鄭州智能語音電銷機器人價格 地圖標注免費定制店 湛江crm外呼系統排名 重慶慶云企業400電話到哪申請 上海極信防封電銷卡價格 宿遷便宜外呼系統代理商

Go Gin 實現文件的上傳下載流讀取

文件上傳

router

router.POST("/resources/common/upload", service.UploadResource)

service

type: POST

data:{
    “saveDir”:“保存的路徑”,
    “fileName”:“文件名稱不帶后綴”
  }

// 上傳文件
func UploadResource(c *gin.Context) {
 saveDirParam := c.PostForm("saveDir")  // 文件目錄
 fileNameParam := c.PostForm("fileName") // 文件名稱
 //目錄
 var saveDir = ""
 //名稱
 var saveName = ""
 //完整路徑
 var savePath = ""
 //獲取文件
 file, header, errFile := c.Request.FormFile("file")
 //處理獲取文件錯誤
 if errFile != nil || common.IsEmpty(header.Filename) {
   c.JSON(http.StatusOK, gin.H{
     "success": false,
     "message": "請選擇文件",
     "dir":   saveDir,
     "name":  saveName,
     "path":  savePath,
   })
   return
 }
 //目錄請求參數為空
 if common.IsEmpty(saveDirParam) {
   c.JSON(http.StatusOK, gin.H{
     "success": false,
     "message": "請求參數錯誤!",
     "dir":   saveDir,
     "name":  saveName,
     "path":  savePath,
   })
   return
 }
 //如果上傳的名稱為空,則自動生成名稱
 if common.IsEmpty(fileNameParam) {
   fileNameParam = GenerateResourceNo()
 }
 //獲取上傳文件的后綴(類型)
 uploadFileNameWithSuffix := path.Base(header.Filename)
 uploadFileType := path.Ext(uploadFileNameWithSuffix)
 //文件保存目錄
 saveDir = "/attachment" + saveDirParam
 //保存的文件名稱
 saveName = fileNameParam + uploadFileType
 savePath = saveDir + "/" + saveName
 //打開目錄
 localFileInfo, fileStatErr := os.Stat(saveDir)
 //目錄不存在
 if fileStatErr != nil || !localFileInfo.IsDir() {
   //創建目錄
   errByMkdirAllDir := os.MkdirAll(saveDir, 0755)
   if errByMkdirAllDir != nil {
     logs.Error("%s mkdir error.....", saveDir, errByMkdirAllDir.Error())
     c.JSON(http.StatusOK, gin.H{
       "success": false,
       "dir":   saveDir,
       "name":  saveName,
       "path":  savePath,
       "message": "創建目錄失敗",
     })
     return
   }
 }
 ////上傳文件前 先刪除該資源之前上傳過的資源文件
 ////(編輯-重新選擇文件-需要先刪除該資源之前上傳過的資源文件)
  ////該代碼執行的條件----上傳的名稱是唯一的,否則會出現誤刪
 ////獲取文件的前綴
 //fileNameOnly := fileNameParam
 //deleteFileWithName(fileNameOnly, saveDir)
 //deleteFileWithName(fileNameOnly, model.WebConfig.ResourcePath+"/"+
 // model.WebConfig.WebConvertToPath)

 out, err := os.Create(savePath)
 if err != nil {
   logs.Error(err)
 }
 defer out.Close()
 _, err = io.Copy(out, file)
 if err != nil {
   c.JSON(http.StatusOK, gin.H{
     "success": false,
     "dir":   saveDir,
     "name":  saveName,
     "path":  savePath,
     "message": err.Error(),
   })
   return
 }

 //沒有錯誤的情況下
 c.JSON(http.StatusOK, gin.H{
   "success": true,
   "dir":   saveDir,
   "name":  saveName,
   "path":  savePath,
   "message": "上傳成功",
 })
 return
}

js提交例子:

注:需導入jquery.js 和 ajaxfileupload.js

//上傳文件
    $.ajaxFileUpload(
      {
        url: '/resources/common/upload', //用于文件上傳的服務器端請求地址
        secureuri: false, //是否需要安全協議,一般設置為false
        fileElementId: fileUploadDomId, //文件上傳域的ID
        data: {
          "saveDir":fileSaveDir,
          "fileName":fileSaveName
        },
        dataType: 'json', //返回值類型 一般設置為json
        contentType:'application/json',//提交的數據類型
        async: false,
        success: function (data, status) //服務器成功響應處理函數
        {
          if (data.success){
            fileSaveName=fileSaveDir+"/"+data.name;
            console.log("上傳成功,返回的文件的路徑:",fileSaveName)
          }else{
            console.log("上傳失敗,返回的文件的路徑:",fileSaveName)
            return
          }
        },
        error: function (data, status, e)//服務器響應失敗處理函數
        {
          console.log("e==",e);
          return
        }
      }
    );

文件的下載

router

Type:‘GET'

普通鏈接格式非restful風格

參數url:下載的文件的路徑

  • Jquery解碼:decodeURIComponent(url);
  • Jquery編碼:encodeURIComponent(url);

例:http://127.0.0.0.1:8080//pub/common/download?url=“/attachment/demo.docx”

router.GET("/pub/common/download", service.PubResFileStreamGetService)

service

//下載次數
func UserFileDownloadCommonService(c *gin.Context) {
  filePath := c.Query("url")
 //打開文件
 fileTmp, errByOpenFile := os.Open(filePath)
 defer fileTmp.Close()
  
  //獲取文件的名稱
  fileName:=path.Base(filePath)
 if common.IsEmpty(filePath) || common.IsEmpty(fileName) || errByOpenFile != nil {
    logs.Error("獲取文件失敗")
   c.Redirect(http.StatusFound, "/404")
   return
 } 
 c.Header("Content-Type", "application/octet-stream")
   //強制瀏覽器下載
 c.Header("Content-Disposition", "attachment; filename="+fileName)
 //瀏覽器下載或預覽
 c.Header("Content-Disposition", "inline;filename="+fileName)
 c.Header("Content-Transfer-Encoding", "binary")
  c.Header("Cache-Control", "no-cache")

 c.File(filePath)
  return
}

文件流讀取

router

Type:‘GET'

普通鏈接格式非restful風格

參數url:下載的文件的路徑

  • Jquery解碼:decodeURIComponent(url);
  • Jquery編碼:encodeURIComponent(url);

例:http://127.0.0.0.1:8080//pub/common/file_stream?url=“/attachment/demo.docx”

router.GET("/pub/common/file_stream", service.PubResFileStreamGetService)


service

//map for Http Content-Type Http 文件類型對應的content-Type
var HttpContentType = map[string]string{
 ".avi": "video/avi",
 ".mp3": "  audio/mp3",
 ".mp4": "video/mp4",
 ".wmv": "  video/x-ms-wmv",
 ".asf": "video/x-ms-asf",
 ".rm":  "application/vnd.rn-realmedia",
 ".rmvb": "application/vnd.rn-realmedia-vbr",
 ".mov": "video/quicktime",
 ".m4v": "video/mp4",
 ".flv": "video/x-flv",
 ".jpg": "image/jpeg",
 ".png": "image/png",
}

//根據文件路徑讀取返回流文件 參數url
func PubResFileStreamGetService(c *gin.Context) {
filePath := c.Query("url")
//獲取文件名稱帶后綴
fileNameWithSuffix := path.Base(filePath)
//獲取文件的后綴
fileType := path.Ext(fileNameWithSuffix)
//獲取文件類型對應的http ContentType 類型
fileContentType := HttpContentType[fileType]
if common.IsEmpty(fileContentType) {
 c.String(http.StatusNotFound, "file http contentType not found")
 return
}
c.Header("Content-Type", fileContentType)
c.File(filePath)
}

到此這篇關于Go Gin實現文件上傳下載的示例代碼的文章就介紹到這了,更多相關Go Gin 文件上傳下載內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

您可能感興趣的文章:
  • 用go gin server來做文件上傳服務

標簽:電子產品 儋州 海南 安康 遼寧 西雙版納 物業服務 青海

巨人網絡通訊聲明:本文標題《Go Gin實現文件上傳下載的示例代碼》,本文關鍵詞  Gin,實現,文件,上傳下載,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Go Gin實現文件上傳下載的示例代碼》相關的同類信息!
  • 本頁收集關于Go Gin實現文件上傳下載的示例代碼的相關信息資訊供網民參考!
  • 推薦文章
    亚洲天堂网在线视频| 中文字幕字幕中文在线中不卡视频| 欧美日韩一区二区三区电影| 欧美日韩高清一区二区三区| 黑人巨大精品欧美| 姬川优奈aav一区二区| 天天干天天干天天干天天干天天干| 亚洲综合图片区| 国产精品免费电影| 久久99精品国产麻豆婷婷| 天堂社区在线视频| 欧美日韩国产一区在线| 天天躁日日躁狠狠躁免费麻豆| 日本精品久久久久久| 91九色蝌蚪嫩草| 尤物视频一区二区| 国产伦理一区二区| 一级欧美一级日韩片| 99久久国产免费免费| 亚洲福利小视频| 爽爽淫人综合网网站| 98精品国产高清在线xxxx天堂| 国产又黄又粗又爽| 日韩av第一页| 免费在线黄色片| 亚洲午夜精品久久久久久久久久久久 | 成人在线免费观看av| 精品国产乱码久久久久久虫虫漫画| 欧美交换配乱吟粗大25p| 中文字幕中文乱码欧美一区二区| 在线观看日本黄色| 国产精品88久久久久久妇女| 国产精品久久久久久久美男| 亚洲成人动漫在线播放| 波多野结衣中文字幕一区二区三区| 一区二区三区网址| 日韩三级精品电影久久久| 欧美又粗又大又长| 奇门遁甲1982国语版免费观看高清| 青草av.久久免费一区| 国产成人中文字幕| 精品国产老师黑色丝袜高跟鞋| 欧美自拍第一页| 日韩一区二区电影在线观看| 亚洲不卡在线观看| 粉嫩av一区二区三区天美传媒| 亚洲自拍与偷拍| 极品美妇后花庭翘臀娇吟小说| 久久av综合网| 久久一区免费| 成人免费视频网址| 欧美丰满片xxx777| 懂色av一区二区三区蜜臀 | 精品中文字幕av| 亚洲片国产一区一级在线观看| 国产男男gay体育生白袜| 欧美性淫爽ww久久久久无| 国产精品视频一区二区三区四区五区 | 免费在线观看一区二区| 亚洲精品中文字幕有码专区| 久久久精品一区二区涩爱| 日本精品一区二区三区视频| 深夜福利亚洲导航| 在线成人av影院| 欧美性xxxx极品hd欧美风情| 99re在线精品| 午夜性色福利影院| 91香蕉国产线在线观看| 日韩免费一区二区| 九一九一国产精品| 国产精品一二三区在线观看| 色综合视频一区中文字幕| 超碰中文字幕在线| 日韩精品免费一区| 亚洲高清资源综合久久精品| 亚洲免费资源在线播放| 一区二区乱子伦在线播放| 91av资源网| 亚洲动漫第一页| 日本欧美在线观看| 日本美女xxx| 日韩欧美理论片| 免费a级黄色片| 中文成人无字幕乱码精品区| 色偷偷中文字幕| 久久这里只有精品23| 91精品久久久久久久久久久久久久| 欧美国产在线观看| 九九热国产视频| 久久久久久久久久一区二区| 91国内在线视频| 国产在线精品一区二区夜色| 国产人妻大战黑人20p| 少妇愉情理伦片bd| 成人免费看黄网站| 欧美二区乱c少妇| 久久众筹精品私拍模特| 91高清国产视频| 国产精品999999| 91精品婷婷国产综合久久竹菊| 日韩免费在线视频观看| 日韩av手机在线看| 99视频精品在线| 黄色一级一级片| 精品亚洲国产视频| 国产免费一区二区三区四区五区| 亚洲一区二区三区在线免费观看| 免费精品视频最新在线| 国产精品香蕉视屏| 亚洲午夜电影网| 日本成人在线免费| 精品国内自产拍在线观看| 亚洲av无码国产精品久久不卡| 国产精品欧美亚洲777777| 亚洲熟女乱色一区二区三区久久久 | 日韩欧美一卡二卡| 妖精视频在线观看免费| 日韩欧美一级片| 男人操女人动态图| 日韩成人在线视频观看| 欧美一级做a爰片免费视频| 97国产在线视频| 一区二区国产欧美| 日韩久久不卡| 中文av字幕一区| 天天插天天操天天射| 精品少妇一区二区三区| 国产精品无码午夜福利| 亚洲图片欧美日产| 国精产品一品二品国精品69xx | 国产精品爱久久久久久久| 麻豆91在线看| 成人精品视频一区二区| 日韩欧美一区二区免费| 久久久久久欧美精品se一二三四| 一区二区三区四区毛片| 妞干网在线免费视频| 成人福利网站在线观看| 国产精品毛片久久久久久| av资源吧首页| 精品一区二区中文字幕| 欧美日本啪啪无遮挡网站| 在线观看国产成人av片| 亚洲国产成人一区| 夜夜亚洲天天久久| 亚洲女人的天堂| 国产嫩草影院久久久久| 亚洲福利视频二区| 精品免费国产| 116极品美女午夜一级| 精品无码国产污污污免费网站 | 波多野结衣日韩| 国产大学生自拍| 国产精品不卡av| 亚洲黄色在线观看视频| 久久久久麻豆v国产| 国模精品一区二区三区| 亚洲天堂男人的天堂| 亚洲美女少妇撒尿| 日韩av一二三| av一本久道久久综合久久鬼色| 国产a精品视频| 成人午夜在线免费| 亚洲欧美成人一区二区三区| 日韩欧美综合一区| 91视频免费网站| 国产伦精品一区二区免费| 久久国产日本精品| 欧美日韩国产精品一区二区不卡中文| 亚洲欧美国产日韩中文字幕| 欧美乱大交xxxxx| 一本色道久久综合亚洲精品小说| 欧美高清性hdvideosex| 亚洲欧美激情在线视频| 中文字幕国产精品久久| 欧美极品少妇xxxxⅹ免费视频| 亚洲午夜日本在线观看| 国产成人a级片| 午夜视频福利在线| 制服.丝袜.亚洲.中文.综合懂色| 一区二区三区四区免费| 中文无码av一区二区三区| 久久国产免费| 激情欧美一区二区三区在线观看| 亚洲六月丁香色婷婷综合久久 | 艳母动漫在线看| 欧美日韩aaaaa| 日韩欧美精品一区二区三区经典| 青青草精品在线| 96日本xxxxxⅹxxx17| 久久av资源网| 久久综合九色综合欧美98| 欧美午夜视频一区二区| 伊人久久男人天堂| 狠狠色噜噜狠狠色综合久| 午夜精品视频在线观看一区二区| 国产精品国产精品国产专区蜜臀ah | 日韩成人免费在线视频| 亚洲精品免费播放| 久久久久久久久久影院| 亚洲综合激情视频| 国产精品亚洲综合| 日韩视频免费观看| 一本大道久久a久久精品综合| 国内精品第一页| 午夜精品久久久久久久96蜜桃 | 你懂的网址一区二区三区| 欧美富婆性猛交| 少妇精69xxtheporn| 4438x亚洲最大成人网| 国产精品国产三级国产三级人妇| 波多野结衣视频一区| 天堂网av在线播放| 少妇一级淫片日本| 91久久国产综合久久91| 亚洲男人的天堂在线视频| 素人fc2av清纯18岁| 能看的毛片网站| 成人在线观看www| 欧美极品一区| 91在线视频一区| 欧美成人三级在线| 国产嫩草影院久久久久| 久久青草欧美一区二区三区| 久久久久99精品一区| 欧美激情资源网| 久久精品亚洲乱码伦伦中文| 成人福利视频在线| 国产精选一区二区三区| 99国产精品一区| 99精品黄色片免费大全| 久久久91精品国产一区二区精品| 国产精品视频免费| 色综合天天综合色综合av | 69av视频在线| 一区二区三区精彩视频| 日本怡春院一区二区| 99re亚洲国产精品| 日韩欧美有码在线| 91精品国产一区二区| 日韩中文字幕免费视频| 国产精品看片资源| 日本成人三级| 日本韩国欧美在线观看| 成年人视频观看| avhd101老司机| 亚洲不卡在线播放| 国产福利免费视频| 首页国产欧美久久| 国产成人免费视频网站| 91年精品国产| 亚洲妇女屁股眼交7| 亚洲精品小视频| 成人精品视频99在线观看免费| 亚洲综合自拍一区| 免费看国产精品一二区视频| ijzzijzzij亚洲大全| 女同性αv亚洲女同志| 国产成人免费在线观看视频| 亚洲精品一区二区口爆| 亚洲欧洲精品一区二区三区| 色婷婷久久一区二区三区麻豆| 欧美mv日韩mv亚洲| 国内精品一区二区三区四区| 三区精品视频观看| 日韩女同一区二区三区| 天堂中文在线看| 国产精品三级视频| 91麻豆精品国产自产在线| 国产精品第10页| 亚洲最新免费视频| 日韩精品无码一区二区三区久久久| 国产毛片久久久久| 国产精品乱人伦中文| 日韩欧美在线看| 国内精久久久久久久久久人| 久久综合久久久久| 国产无码精品在线播放| 国产视频911| 欧美第一页在线| 成人3d动漫一区二区三区| 久久久久99精品成人片我成大片| 日韩av一区二区在线影视| 色婷婷av一区二区三区大白胸| 欧美在线视频观看| 国产三级三级看三级| 大黑人交xxx极品hd| 伊人久久一区二区| 久久新电视剧免费观看| 欧美三级电影在线观看| 国产精品h在线观看| aa在线免费观看| 99热在线只有精品| 一区二区三区四区蜜桃| 国产精品wwwwww| 亚洲国产精品成人综合久久久| 老司机午夜精品| 亚洲变态欧美另类捆绑| 视频一区视频二区视频三区高| 国产免费无码一区二区视频| 国产成人亚洲综合a∨婷婷图片| 亚洲免费电影在线观看| 视频二区一区| 成人免费视频国产免费观看| 欧美激情一区二区三区不卡| 国产91色在线|| 欧美黑人欧美精品刺激| 国产精品中文字幕欧美| 亚洲欧美日韩视频一区| 日韩免费高清在线| 久久99久久精品欧美| 久久国产精品电影| 污污污www精品国产网站| 青青青爽久久午夜综合久久午夜| 欧洲一区二区三区在线| 国产精品成人一区二区三区| 五月综合色婷婷| 91免费观看视频| 午夜精品久久久久久久久久久久久| 波多野结衣三级视频| 中文字幕一区二区三区色视频| 亚洲最大中文字幕| 免费一区二区三区在线观看 | 久久视频免费在线| 首页国产欧美久久| 国产综合在线视频| 国产成人久久久久| 欧美一区二区三区色| 一区二区xxx| 国产精品国产馆在线真实露脸| 国产精品亚洲激情| 亚洲大尺度在线观看| 中文字幕av一区中文字幕天堂| 亚洲欧美另类动漫| 日本一区二区高清| 欧美日韩精品免费看| 欧美a一区二区| 91精品婷婷国产综合久久蝌蚪| 波多野结衣视频免费观看| 国产一区二区三区久久精品| 蜜臀av粉嫩av懂色av| 色av综合在线| 无套内谢丰满少妇中文字幕| 亚洲成精国产精品女| 女人喷潮完整视频| 久久精品亚洲精品国产欧美kt∨| 91精品久久久久久久久青青| 精品国自产拍在线观看| 欧美一区深夜视频| 一二三区免费视频| 欧美国产视频日韩| 久久国产视频播放| 欧美午夜在线一二页| 国产小视频免费| 中文一区二区完整视频在线观看| 久久综合av免费| 国产视频一区在线| 久久国产高清视频| 日韩免费一区二区| 伊人久久一区二区三区| 欧美精品精品一区| 国产一级中文字幕| 欧美少妇一区二区| 亚洲欧美天堂在线| 欧美日韩综合视频网址| 亚洲av综合色区无码另类小说| 一本久久a久久精品亚洲| 久久精品aⅴ无码中文字字幕重口| 在线播放一区二区三区| 国产亚洲精品成人a| 色欧美片视频在线观看| 日韩不卡av在线| 性欧美亚洲xxxx乳在线观看| 视频一区在线视频| 另类欧美小说| 中文无字幕一区二区三区| 99热这里只有精品在线播放| 日韩一区二区三区电影| 亚洲 欧美 成人| 国产欧美一区二区三区久久| japan高清日本乱xxxxx| 亚洲第一在线综合网站| 小早川怜子久久精品中文字幕| 欧美成人中文字幕| 亚洲精品97久久中文字幕| 国产精品亚洲一区二区三区| 久久日韩粉嫩一区二区三区| av天堂永久资源网| 精品国产91洋老外米糕| 丰满少妇乱子伦精品看片| 俄罗斯精品一区二区三区| 亚洲欧美区自拍先锋| 丝袜美腿小色网| 国产精品麻豆免费版| 国产亚洲精久久久久久| 久久久久亚洲av成人无码电影| 中文字幕亚洲欧美日韩在线不卡| 日本网站在线免费观看| 亚洲一区二区三区四区在线播放 | 欧美成人全部免费| 久久在线精品| 日本爱爱免费视频| 精品久久久久久久久久久院品网 | 欧美日韩黄色一级片| 社区色欧美激情 | 91视频xxxx| 久久高清无码视频| 国产精品免费一区二区三区四区 | 国产亲伦免费视频播放| av免费观看网|