最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

resp.Header["Content-Disposition"]是一個 JSON對象
[{[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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • golang并發(fā)編程使用Select語句的實現(xiàn)

    golang并發(fā)編程使用Select語句的實現(xiàn)

    Go語言中的select語句是并發(fā)編程中的重要工具,允許Goroutine等待多個通道操作,它阻塞直至任一case可執(zhí)行,可用于接收數(shù)據(jù)、實現(xiàn)超時機(jī)制和非阻塞通道操作,感興趣的可以了解一下
    2024-10-10
  • golang實現(xiàn)對JavaScript代碼混淆

    golang實現(xiàn)對JavaScript代碼混淆

    在Go語言中,你可以使用一些工具來混淆JavaScript代碼,一個常用的工具是Terser,它可以用于壓縮和混淆JavaScript代碼,你可以通過Go語言的`os/exec`包來調(diào)用Terser工具,本文給通過一個簡單的示例給大家介紹一下,感興趣的朋友可以參考下
    2024-01-01
  • 詳解Golang中文件系統(tǒng)事件監(jiān)聽

    詳解Golang中文件系統(tǒng)事件監(jiān)聽

    文件系統(tǒng)事件是指文件系統(tǒng)相關(guān)的各種操作和狀態(tài)變化,當(dāng)一個應(yīng)用層的進(jìn)程操作文件或目錄時,會觸發(fā)system call,內(nèi)核的notification子系統(tǒng)可以守在那里,把該進(jìn)程對文件的操作上報給應(yīng)用層的監(jiān)聽進(jìn)程,這篇文章主要介紹了Golang之文件系統(tǒng)事件監(jiān)聽,需要的朋友可以參考下
    2024-01-01
  • golang環(huán)形隊列實現(xiàn)代碼示例

    golang環(huán)形隊列實現(xiàn)代碼示例

    這篇文章主要介紹了golang環(huán)形隊列實現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Go語言中io包核心接口示例詳解

    Go語言中io包核心接口示例詳解

    Go的io包提供了io.Reader和io.Writer接口,分別用于數(shù)據(jù)的輸入和輸出,下面這篇文章主要給大家介紹了關(guān)于Go語言中io包核心接口的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • go build 通過文件名后綴實現(xiàn)不同平臺的條件編譯操作

    go build 通過文件名后綴實現(xiàn)不同平臺的條件編譯操作

    這篇文章主要介紹了go build 通過文件名后綴實現(xiàn)不同平臺的條件編譯操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • Go語言操作mysql數(shù)據(jù)庫簡單例子

    Go語言操作mysql數(shù)據(jù)庫簡單例子

    這篇文章主要介紹了Go語言操作mysql數(shù)據(jù)庫簡單例子,本文包含插入數(shù)據(jù)和查詢代碼實例,需要的朋友可以參考下
    2014-10-10
  • Go位集合相關(guān)操作bitset庫安裝使用

    Go位集合相關(guān)操作bitset庫安裝使用

    這篇文章主要為大家介紹了Go位集合相關(guān)操作bitset庫安裝使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Go語言擴(kuò)展原語之Semaphore的用法詳解

    Go語言擴(kuò)展原語之Semaphore的用法詳解

    Go語言的擴(kuò)展包中提供了帶權(quán)重的信號量?semaphore.Weighted,讓我們可以按照不同的權(quán)重管理資源的訪問,下面小編就來和大家聊聊它們的具體用法吧
    2023-07-07
  • go語言template用法實例

    go語言template用法實例

    這篇文章主要介紹了go語言template用法,實例分析了template的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02

最新評論

蓬溪县| 新蔡县| 交口县| 绥宁县| 偃师市| 敖汉旗| 社会| 大余县| 葫芦岛市| 石景山区| 松潘县| 平潭县| 神池县| 两当县| 嘉善县| 巴马| 徐汇区| 镇原县| 定安县| 岳普湖县| 江陵县| 类乌齐县| 高要市| 大足县| 木兰县| 宣化县| 达州市| 铜梁县| 烟台市| 清镇市| 中山市| 三亚市| 石屏县| 辽宁省| 禄劝| 静海县| 图木舒克市| 西青区| 新河县| 阿拉尔市| 合川市|