Rumah >pembangunan bahagian belakang >Golang >Pemprosesan fail aplikasi web pembelajaran Golang

Pemprosesan fail aplikasi web pembelajaran Golang

WBOY
WBOYasal
2023-06-24 10:11:371401semak imbas

Dengan perkembangan teknologi Internet yang berterusan, permintaan untuk aplikasi Web juga semakin meningkat. Dalam proses pembangunan aplikasi web, selalunya perlu untuk mengendalikan operasi fail dan direktori, seperti memuat naik fail, memuat turun fail, melihat senarai fail, dsb. Dalam bahasa Golang, pemprosesan fail adalah titik pengetahuan yang sangat asas dan bahagian yang sangat diperlukan dalam membangunkan aplikasi web. Artikel ini akan memperkenalkan cara Golang mengendalikan operasi fail dalam aplikasi web.

1. Operasi fail

Operasi fail di Golang dilaksanakan terutamanya melalui pakej os. Pakej os terutamanya menyediakan fungsi operasi fail dan direktori berikut:

1 Cipta fail atau direktori
Nama fungsi: os.Create(rentetan nama) (*os.Fail, ralat)
Tujuan fungsi : Cipta fail bernama nama Jika fail itu tidak wujud, buatnya Jika ia wujud, kosongkan fail

Nama fungsi: os.Mkdir(rentetan nama, perm os.FileMode) ralat<.>Tujuan fungsi : Buat direktori bernama nama, parameter perm menentukan kebenaran direktori

Nama fungsi: os.MkdirAll(rentetan laluan, perm os.FileMode) ralat

Tujuan fungsi: Buat a direktori berbilang peringkat, Jika direktori sudah wujud, tiada operasi dilakukan

2 Buka fail

Nama fungsi: os.Buka(rentetan nama) (*os.Fail, ralat)
Tujuan fungsi: Buka nama ialah fail yang dinamakan, jika fail tidak wujud, ralat akan dikembalikan

3 Padam fail atau direktori

Nama fungsi: os.Remove(name string) error.
Tujuan fungsi: Padamkan fail bernama fail atau direktori, jika fail atau direktori tidak wujud, ralat akan dikembalikan

Nama fungsi: os.RemoveAll(rentetan laluan) ralat

Fungsi tujuan: Padam direktori berbilang peringkat, jika direktori itu tidak wujud, maka Kembalikan ralat

4 Baca direktori

Nama fungsi: os.ReadDir(rentetan nama) ([]os.DirEntry, ralat. )
Tujuan fungsi: Baca semua fail di bawah nama direktori dan maklumat Direktori, mengembalikan kepingan jenis os.DirEntry

2. Muat naik fail

Dalam aplikasi web, muat naik fail ialah fungsi biasa keperluan. Kaedah pelaksanaan khusus adalah seperti berikut:

1. Mula-mula tambah teg input fail yang dimuat naik dalam bentuk HTML

c49d274f8aea88415f5442817e15457b

<input type="file" name="uploadfile" />
<input type="submit" value="上传文件" />

e083986a812e016ef20466f844ca7465

2. Dalam kod bahagian belakang, dapatkan maklumat fail yang dimuat naik

fail, pengendali, err : = r.FormFile("uploadfile")

if err != nil {

//处理错误信息

}

di mana r ialah pembolehubah http.Permintaan jenis maklumat boleh diperolehi melalui r.Fungsi FormFile Jika pemerolehan gagal, mesej ralat akan dikembalikan.

3. Simpan fail yang dimuat naik

keluar, err := os.Create("./uploads/" + handler.Filename)

if err != nil {

//处理错误信息

}

tangguh keluar.Tutup()

_, err = io.Salin(keluar, fail)

jika err != tiada {

//处理错误信息

}

Selepas mendapatkan maklumat fail, anda perlu mencipta fail output, dan kemudian tulis kandungan fail yang dimuat naik ke dalam fail output melalui fungsi io.Copy untuk melengkapkan operasi menyimpan fail.

3. Muat Turun Fail

Selain muat naik fail, muat turun fail juga merupakan keperluan fungsi biasa dalam aplikasi Web Kaedah pelaksanaan khusus adalah seperti berikut:

1. Melalui protokol HTTP Hantar fail

nama fail := "./uploads/examplefile.txt"

f, err := os.Open(filename)

if err != nil {

//处理错误信息

}

tunda f.Close()

header := make([]bait, 512)

if _, err := f.Read(header); != nil {

//处理错误信息

}

fileStat, err := f.Stat()

if err != nil {

//处理错误信息

}

w. Header().Set("Content-Disposition", "attachment; filename="+filename)

w.Header().Set("Content-Type", http.DetectContentType(header))
w. Header().Set("Content-Length", strconv.FormatInt(fileStat.Size(), 10))

f.Seek(0, 0)

io.Copy(w , f)

Dalam contoh ini, fail yang hendak dimuat turun mula-mula dibuka melalui fungsi os.Open, kemudian kandungan fail dan maklumat berkaitan dihantar melalui protokol http, dan akhirnya kandungan fail ditulis ke dalam badan tindak balas HTTP melalui fungsi io.Copy. Laksanakan operasi muat turun fail.

4. Paparan senarai fail

Dalam aplikasi web, paparan senarai fail juga merupakan keperluan fungsian yang biasa, yang boleh dicapai melalui kaedah berikut:

1 fail dalam direktori Senarai fail

dir, err := os.ReadDir("./uploads")

if err != nil {

//处理错误信息

}

2. Lintas fail Senarai dan paparkan

untuk _, d := range dir {

if !d.IsDir() {
    fmt.Fprintf(w, "<a href="/download?file=%s">%s</a><br>", d.Name(), d.Name())
}

}

Dalam contoh ini, senarai fail dalam direktori yang ditentukan diperolehi melalui fungsi os.ReadDir, Kemudian senarai fail dipaparkan pada halaman Web melalui operasi traversal, dan pautan muat turun fail disediakan.

5. Ringkasan

Melalui pengenalan artikel ini, kita dapat melihat bahawa operasi fail dalam bahasa Golang adalah sangat asas, tetapi ia adalah titik pengetahuan penting untuk membangunkan aplikasi web. Muat naik fail, muat turun dan paparan senarai adalah keperluan operasi fail biasa Dalam pembangunan sebenar, kaedah di atas perlu digunakan secara fleksibel untuk memenuhi keperluan aplikasi web.

Atas ialah kandungan terperinci Pemprosesan fail aplikasi web pembelajaran Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn