Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan fail muat naik borang dalam rangka kerja Beego

Bagaimana untuk melaksanakan fail muat naik borang dalam rangka kerja Beego

王林
王林asal
2023-06-03 09:40:461447semak imbas

Dalam pembangunan web, memuat naik fail melalui borang adalah salah satu operasi yang paling biasa. Dalam rangka kerja Beego, ia juga sangat mudah untuk melaksanakan borang untuk memuat naik fail. Artikel ini akan memperkenalkan cara melaksanakan fail muat naik borang dalam rangka kerja Beego.

  1. Kerja penyediaan

Untuk melaksanakan fail muat naik borang, pakej beego/borang perlu diperkenalkan dalam rangka kerja Beego. Jika anda menggunakan modul go, anda boleh memasang beego/form dengan arahan berikut:

go get github.com/astaxie/beego/form

Selepas pemasangan berjaya, import beego/form dalam fail yang perlu dimuat naik menggunakan borang:

import "github.com/astaxie/beego/form"
  1. Borang bahagian hadapan

Mula-mula, anda perlu menambah atribut enctype="multipart/form-data" pada fail HTML bahagian hadapan supaya borang menyokong muat naik fail. Kod HTML adalah seperti berikut:

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <input type="submit" value="提交">
</form>

Antaranya, atribut tindakan menentukan alamat untuk penyerahan borang, dan atribut kaedah menentukan kaedah HTTP untuk penyerahan borang. Ambil perhatian bahawa dalam rangka kerja Beego, atribut enctype perlu ditetapkan kepada "multipart/form-data".

  1. Pemprosesan pengawal

Seterusnya, proses fail yang dimuat naik oleh borang dalam pengawal. Dengan mengandaikan bahawa alamat penyerahan borang bahagian hadapan ialah "/upload", ia boleh diproses seperti berikut dalam pengawal yang sepadan dengan alamat:

func (c *MainController) Upload() {
  file, header, err := c.GetFile("file")
  if err != nil {
    c.Data["json"] = map[string]interface{}{
      "code":    500,
      "message": "文件上传失败",
    }
    c.ServeJSON()
    return
  }
  defer file.Close()
  filename := header.Filename
  if err := c.SaveToFile("file", "static/upload/"+filename); err != nil {
    c.Data["json"] = map[string]interface{}{
      "code":    500,
      "message": "保存文件失败",
    }
    c.ServeJSON()
    return
  }
  c.Data["json"] = map[string]interface{}{
    "code":    200,
    "message": "文件上传成功",
  }
  c.ServeJSON()
}

Dalam pengawal, kami mula-mula memanggil c.GetFile( kaedah "fail") untuk mendapatkan Fail yang dimuat naik oleh borang bahagian hadapan, dengan parameter "fail" ialah nilai atribut nama kawalan fail dalam bentuk bahagian hadapan. Jika mendapatkan fail gagal, mesej ralat dikembalikan jika tidak, kami menggunakan kaedah c.SaveToFile() untuk menyimpan fail ke laluan yang ditentukan.

Akhir sekali, kami mengembalikan hasil muat naik ke bahagian hadapan dalam bentuk JSON.

  1. Ringkasan

Melalui langkah di atas, kami telah berjaya melaksanakan fungsi fail muat naik borang dalam rangka kerja Beego. Perlu diingat bahawa oleh kerana muat naik fail menggunakan sejumlah besar sumber, dalam persekitaran pengeluaran, langkah keselamatan seperti had saiz fail dan had jenis fail perlu ditetapkan untuk menghalang Trojan atau virus daripada menyerang melalui muat naik fail.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan fail muat naik borang dalam rangka kerja Beego. 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