欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

golang根據(jù)URL獲取文件名的示例代碼

 更新時(shí)間:2024年01月26日 09:34:39   作者:lmy_loveF  
這篇文章主要為大家詳細(xì)介紹了golang根據(jù)URL獲取文件名,文中的示例代碼講解詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

只有一個(gè)文件地址,但是沒有文件名稱,文件地址:http://XXXXXXX/getfile.aspx?fileid=999
但是系統(tǒng)需要把文件名稱也寫入到數(shù)據(jù)庫

可以根據(jù) resp.Header["Content-Disposition"] 獲取文件名

resp.Header["Content-Disposition"]是一個(gè) JSON對(duì)象
[{[0]:"attachement;filename=BT-3189%e4%b8%8b%e5%a3%b3(TD).pdf"}]
//復(fù)制文件到本地
  func copyOaFileToPms(fileid) (int, error) {
 
    filePath := "http://XXXXXXX/getfile.aspx?fileid=" + fileid
	resp, err := http.Get(filePath)
	if err != nil {
		return 0, err
	}
	defer resp.Body.Close()
	fileName := getFilenameFromContentDisposition(resp.Header["Content-Disposition"])
	fmt.Println("文件名為:", fileName)
	fileName, _ = url.QueryUnescape(fileName)
	fmt.Println("解碼后文件名為:", fileName)
	if len(fileName) == 0 {
		sbjlog.Debug("copyOaFileToPms 根據(jù)文件名獲取文件id失敗,fileName:%v", fileName)
		return 0, errors.New("獲取文件名稱失敗")
	}
	// 獲取文件后綴名
	fileExt := path.Ext(fileName)
	// 得到文件名不帶后綴
	onlyFileName := strings.TrimSuffix(fileName, fileExt)
	onlyFileName = strings.ToUpper(onlyFileName) //文件名轉(zhuǎn)大寫
 
	fileNameAndExt := onlyFileName + strings.TrimPrefix(fileExt, ".") //文件名+后綴,作為新的文件名
......
}
 
 
// 從 Content-Disposition 頭部信息中提取文件名
func getFilenameFromContentDisposition(contentDispositions []string) string {
	filename := ""
	for _, part := range contentDispositions {
		keyValue := strings.SplitN(part, "=", 2)
		if len(keyValue) == 2 && strings.Contains(keyValue[0], "filename") {
			filename = keyValue[1]
			return filename
		}
	}
	return filename
}
 
 

到此這篇關(guān)于golang根據(jù)URL獲取文件名的示例代碼的文章就介紹到這了,更多相關(guān)golang URL獲取文件名內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go語言錯(cuò)誤處理異常捕獲+異常拋出

    Go語言錯(cuò)誤處理異常捕獲+異常拋出

    這篇文章主要介紹了Go語言錯(cuò)誤處理異常捕獲和異常拋出,Go語言的作者認(rèn)為java等語言的錯(cuò)誤處理底層實(shí)現(xiàn)較為復(fù)雜,就實(shí)現(xiàn)了函數(shù)可以返回錯(cuò)誤類型以及簡單的異常捕獲,雖然簡單但是也非常精妙,大大的提高了運(yùn)行效率,下文需要的朋友可以參考一下
    2022-02-02
  • Golang中的path/filepath包用法

    Golang中的path/filepath包用法

    這篇文章主要介紹了Golang中的path/filepath包用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%

    go?time.After優(yōu)化后性能提升34%內(nèi)存減少67%

    這篇文章主要介紹了go語言time.After優(yōu)化后性能提升34%內(nèi)存減少67%實(shí)例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • go 如何修改postgresql的配置參數(shù)

    go 如何修改postgresql的配置參數(shù)

    這篇文章主要介紹了go 如何修改postgresql的配置參數(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-01-01
  • Go語言實(shí)現(xiàn)的排列組合問題實(shí)例(n個(gè)數(shù)中取m個(gè))

    Go語言實(shí)現(xiàn)的排列組合問題實(shí)例(n個(gè)數(shù)中取m個(gè))

    這篇文章主要介紹了Go語言實(shí)現(xiàn)的排列組合問題,結(jié)合實(shí)例形式分析了Go語言實(shí)現(xiàn)排列組合數(shù)學(xué)運(yùn)算的原理與具體操作技巧,需要的朋友可以參考下
    2017-02-02
  • Golang中指針的使用詳解

    Golang中指針的使用詳解

    Golang是一門支持指針的編程語言,指針是一種特殊的變量,存儲(chǔ)了其他變量的地址。通過指針,可以在程序中直接訪問和修改變量的值,避免了不必要的內(nèi)存拷貝和傳遞。Golang中的指針具有高效、安全的特點(diǎn),在并發(fā)編程和底層系統(tǒng)開發(fā)中得到廣泛應(yīng)用
    2023-04-04
  • Go語言的JSON處理詳解

    Go語言的JSON處理詳解

    json格式可以算我們?nèi)粘W畛S玫男蛄谢袷街涣?Go語言作為一個(gè)由Google開發(fā),號(hào)稱互聯(lián)網(wǎng)的C語言的語言,自然也對(duì)JSON格式支持很好。
    2018-10-10
  • Go框架自動(dòng)化工具Beego使用詳解

    Go框架自動(dòng)化工具Beego使用詳解

    這篇文章主要為大家介紹了Go框架自動(dòng)化工具Beego使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • vscode 通過Go:Install/Update Tools命令安裝失敗的問題解決

    vscode 通過Go:Install/Update Tools命令安裝失敗的問題解決

    本文介紹了在VSCode開發(fā)環(huán)境中通過Go:Install/UpdateTools命令安裝工具時(shí)遇到網(wǎng)絡(luò)問題的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法詳解

    golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法詳解

    這篇文章主要介紹了golang中的string與其他格式數(shù)據(jù)的轉(zhuǎn)換方法,文章通過代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-10-10

最新評(píng)論