ใช้ Content-Disposition 헤더 ทำให้ 브라우저 다운로드 ไฟล์แทนที่จะเปิดใน 브라우저

12145 단어 programminggohttp
วัน วัน ต้อง ต้อง ก่อน API 엔드 포인트 (API 엔드 포인트 นึง แต่ แต่ ไม่ ใช่ ใช่ ตอบ ตอบ กลับ เป็น เป็น เป็น เป็น json แต่ จะ จะ ตอบ เป็น เป็น 함량 ของ pdf แทน ซึ่ง ซึ่ง เรา อยาก อยาก ให้ ให้ เมื่อ กดลิ้ง มา ที่ ที่ 끝점 นี้ จาก ทาง ทาง ให้ ให้ 브라우저 นั้น โหลด ไฟล์ แทน ที่ ที่ จะ เปิด ผ่าน ผ่าน ผ่าน ผ่าน 브라우저).

วิธีที่ช่วยได้คือก ำหนดค่าให้กับ 헤더 ที่ชื่อ Content-Disposition
เรา เรา เรา ดู มา ธรรมดา ธรรมดา กัน ก่อน แบบ ไม่ ใช้ ใช้ Content-Disposition ว่า พฤติกรรม ของ ของ 브라우저 นั้น เป็น ยังไง ตัวอย่าง โค้ด โค้ด โค้ด GO

ถ้าเรามีโค้ดแบบนี้

package main

import (
    "log"
    "net/http"
    "os"
)

func main() {
    http.HandleFunc("/cat.jpg", func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "image/jpeg")
        b, err := os.ReadFile("image.jpg")
        if err != nil {
            log.Fatal(err)
        }
        w.Write(b)
    })

    http.HandleFunc("/index.html", func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "text/html")
        b, err := os.ReadFile("index.html")
        if err != nil {
            log.Fatal(err)
        }
        w.Write(b)
    })

    http.ListenAndServe(":8000", nil)
}


셜록스index.html
<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Load</title>
</head>
<body>
        <a href="/cat.jpg">Download Picture</a>
</body>
</html>



เمื่or นโค้ดแล้ว เข้า ไปที่ localhost:8000/index.html จะ เจอลิ้ง 다운로드 แบบนี้



และเมื่อเรากดลิ้งจะเห็นว่า 브라우저 นั้นเปิดใน 브라우저 เลยแบบนี้



ทีนี้ถ้าเราต้องการให้ 브라우저 โหลดไฟล์แทน เราสามารถกำหนด header Content-Disposition ไปแบบี้น

package main

import (
    "log"
    "net/http"
    "os"
)

func main() {
    http.HandleFunc("/cat.jpg", func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "image/jpeg")
        w.Header().Set("Content-Disposition", `attachment; filename="cat.png"`)
        b, err := os.ReadFile("image.jpg")
        if err != nil {
            log.Fatal(err)
        }
        w.Write(b)
    })

    http.HandleFunc("/index.html", func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "text/html")
        b, err := os.ReadFile("index.html")
        if err != nil {
            log.Fatal(err)
        }
        w.Write(b)
    })

    http.ListenAndServe(":8000", nil)
}



ส่วนค่าของ 헤더 คือกำหนดเป็น

`attachment; filename="cat.png"`


ตรง filename คือกำหนดชื่อไฟล์ที่จะให้ 브라우저 ใช้เซฟตอน 다운로드 น่นเอ



커피 사줘



สำหรับ สำหรับ ใด ใด ท่าน อ่าน แล้ว ชอบโพสต์ ต่าง ต่าง ๆ ของ ของ ผม ผม ที่ นี่ ต้องการ สนับสนุน สนับสนุน ค่ากา แฟ เล็ก เล็ก ๆ น้อย ๆ สามารถ สามารถ สนับสนุน สนับสนุน ➢ 커피를 사십시오



ส่วน ส่วน ส่วน ใด ท่าน สะดวก ใช้ บัตร เครดิต เครดิต หรือ หรือ PayPal สามารถ สนับสนุน สนับสนุน ผม ได้ ผ่าน ทาง ทาง 프롬프트 페이 โดย ดู QR 코드 ได้ จาก โพสต์ โพสต์ ที่ พิน เอา เอา ได้ ที่ ที่ 페이지 Decdose ครับ https://web.facebook.com/devdoseth

감사합니다 🙏

좋은 웹페이지 즐겨찾기