carga de archivos golang y la configuración de descarga y arrogancia

Sube:

// @Summary上传文件
 // @description
 // @Tags archivo
 // / form-data @Accept multiparte
 // "archivo" archivo @Param archivo FormData cierto
 // @Produce JSON
 // @Success 200 {objeto} filtros. respuesta { "código": 200, "datos": nil, "msg": ""}
 // @Router / carga [mensaje] 
func UploadFile (CTX * gin.Context) { 
    archivo, encabezado, err: = ctx.Request .FormFile ( " archivo " )
     si se equivocan! = nil { 
        returnMsg (CTX, configs.ERROR_PARAMS, "" , se equivocan.
        Error ()) de retorno 
    }
    // 获取文件名 
    nombre: = header.Filename
     // 写入文件
    a cabo , se equivocan: = os.Create ( " ./static/ " + nombre de fichero)
     si ! Err = nil { 
        returnMsg (CTX, configs.ERROR_SERVERE, "" , err.Error ())
         de retorno 
    } 
    Defer cabo .Close () 
    _, err = io.Copy ( cabo , archivo)
     si se equivocan! = nil { 
        log.Fatal (err) 

    } 
    returnMsg (CTX, 200 , "" , " éxito" ) 
}

Descargar:

// @Summary下载文件
 // @description
 // @Tags archivo
 // @Param nombre de cadena de consulta verdadero "nombre de archivo"
 // @Success 200 {objeto} gin.Context
 // @Router / descarga [conseguir] 
func DownloadFile ( ctx * gin.Context) { 
    nombre del archivo: = ctx.DefaultQuery ( " nombre de archivo " , "" )
     // fmt.Sprintf ( "unión; nombre de archivo =% s", nombre de archivo)对下载的文件重命名 
    ctx.Writer.Header ( ) .Add ( " Content-Disposition " , fmt.Sprintf ( " unión; nombre de archivo =% s "  , nombre de archivo))
    ctx.Writer.Header (). Añadir (" Content-Type " , " application / octet-stream " ) 
    ctx.File ( " ./static/a.txt " ) 
}

 

Leer la carga de archivos CSV y descarga, etc .:   https://blog.csdn.net/aaaadong/article/details/90177038

Supongo que te gusta

Origin www.cnblogs.com/zhzhlong/p/12556457.html
Recomendado
Clasificación