123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- package modules
- import (
- "io"
- "os"
- "strings"
- "golang-fave/engine/utils"
- "golang-fave/engine/wrapper"
- )
- func (this *Modules) RegisterAction_FilesUpload() *Action {
- return this.newAction(AInfo{
- Mount: "files-upload",
- WantAdmin: true,
- }, func(wrap *wrapper.Wrapper) {
- pf_count := utils.Trim(wrap.R.FormValue("count"))
- pf_path := utils.Trim(wrap.R.FormValue("path"))
- if !utils.IsNumeric(pf_count) {
- wrap.MsgError(`Inner system error`)
- return
- }
- pf_count_int := utils.StrToInt(pf_count)
- if pf_count_int <= 0 {
- wrap.MsgError(`Inner system error`)
- return
- }
- if pf_path == "" {
- wrap.MsgError(`Please specify files path`)
- return
- }
- for i := 1; i <= pf_count_int; i++ {
- post_field_name := "file_" + utils.IntToStr(i-1)
- if file, handler, err := wrap.R.FormFile(post_field_name); err == nil {
- if handler.Filename != "" {
- filename := utils.SafeFilePath(pf_path + handler.Filename)
- target := strings.Join([]string{wrap.DHtdocs, "public"}, string(os.PathSeparator)) + filename
- if f, err := os.OpenFile(target, os.O_WRONLY|os.O_CREATE, 0666); err == nil {
- io.Copy(f, file)
- f.Close()
- }
- }
- file.Close()
- }
- }
- path := "/"
- i := strings.LastIndex(pf_path, string(os.PathSeparator))
- if i != -1 {
- path = pf_path[:i+1]
- }
- // Set path
- wrap.Write(`$('#sys-modal-files-manager .dialog-path span').html('` + path + `');`)
- // Refresh table
- wrap.Write(`fave.FilesManagerLoadData('` + path + `');`)
- })
- }
|