go iris框架文件上传下载
在 Iris 框架中,可以使用内置的 iris 包中的 Context 对象来处理文件上传和下载。以下是一个简单的示例代码:
package main import (
"github.com/kataras/iris/v12"
) func main() {
app := iris.New() // 处理文件上传
app.Post("/upload", func(ctx iris.Context) {
file, info, err := ctx.FormFile("file")
if err != nil {
ctx.StatusCode(iris.StatusBadRequest)
ctx.WriteString(err.Error())
return
}
defer file.Close() // 保存文件到本地
err = ctx.SaveFormFile(file, "./uploads/" + info.Filename)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
} ctx.WriteString("文件上传成功")
}) // 处理文件下载
app.Get("/download", func(ctx iris.Context) {
filename := ctx.URLParam("filename") // 打开文件
file, err := os.Open("./uploads/" + filename)
if err != nil {
ctx.StatusCode(iris.StatusNotFound)
ctx.WriteString("文件不存在")
return
}
defer file.Close() // 设置响应头信息
ctx.Header("Content-Disposition", "attachment; filename=" + filename)
ctx.Header("Content-Type", "application/octet-stream")
ctx.Header("Content-Length", strconv.FormatInt(info.Size(), 10)) // 将文件写入响应
_, err = io.Copy(ctx.ResponseWriter(), file)
if err != nil {
ctx.StatusCode(iris.StatusInternalServerError)
ctx.WriteString(err.Error())
return
}
}) app.Run(iris.Addr(":8080"))
}
上述代码中,/upload 路由处理文件上传,将文件保存到本地的 ./uploads 目录下。/download 路由处理文件下载,先打开本地文件,然后设置响应头信息,最后将文件内容写入响应体中。
go iris框架文件上传下载的更多相关文章
- ssh框架文件上传下载
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)
1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...
- Struts 框架 之 文件上传下载案例
Struts 框架 文件上传 1. 先准备 Struts 环境 (我使用的是struts 2.3.4版本) 导jar包:
- springmvc文件上传下载简单实现案例(ssm框架使用)
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...
- Struts的文件上传下载
Struts的文件上传下载 1.文件上传 Struts2的文件上传也是使用fileUpload的组件,这个组默认是集合在框架里面的.且是使用拦截器:<interceptor name=" ...
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...
- NetworkComms 文件上传下载和客户端自动升级(非开源)
演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 淘宝地址:https://shop183793329.taobao.com 联系QQ号:3201175853 许可:购 ...
- SpringMVC文件上传下载
在Spring MVC的基础框架搭建起来后,我们测试了spring mvc中的返回值类型,如果你还没有搭建好springmvc的架构请参考博文->http://www.cnblogs.com/q ...
- FastDFS实现文件上传下载实战
正好,淘淘商城讲这一块的时候,我又想起来当时老徐让我写过一个关于实现FastDFS实现文件上传下载的使用文档,当时结合我们的ITOO的视频系统和毕业论文系统,整理了一下,有根据网上查到的知识,总结了一 ...
- 2013第38周日Java文件上传下载收集思考
2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...
随机推荐
- LibreOJ 144. DFS 序 1
题面 给一棵有根树,这棵树由编号为 \(1\dots N\) 的 \(N\) 个结点组成.根结点的编号为 \(R\).每个结点都有一个权值,结点 \(i\) 的权值为 \(v_i\). 接下来有 \( ...
- 【实战】yolov8 tensorrt模型加速部署
[实战]yolov8 tensorrt模型加速部署 TensorRT-Alpha基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10.linux,在2023年已经更 ...
- JS实现excel数据透析,形成关系图
网上查了好多例子,都没有找到答案,只能自己硬着头皮写了 想要的样子: 下面是DEMO,已经实现效果了!!!! 举例 导入 <!DOCTYPE html> <html lang=&q ...
- Android原生集成JPush SDK
因为小黑是一名Unity开发,所以Android Studio上有写的不对的地方请大佬们指出,再集成的时候,有问题的或者疑问的也可以直接提出. 目录 使用版本: 接入JPush SDK 一:下载JPu ...
- 程序员必备的数据库知识 2:Join 算法
前言 连接(Join)是关系数据库重要特性,它和事务常被作为数据库与文件系统的两个重要区别项.程序员江湖一直流传着某某 baba 的神秘开发宝典,其中数据库部分有重要一条避免过多表的 Join,奈何 ...
- git 拉取github项目失败(超时)
问题 通过git拉取GitHub上的项目失败报错信息如下 fetch-pack: unexpected disconnect while reading sideband packet fatal: ...
- 打开sublime text3 弹出错误提示 Error trying to parse settings: Expected value inPackages\UserJSONsublime-settings:13:17
问题:打开sublime text3 弹出错误提示 Error trying to parse settings: Expected value inPackages\UserJSONsublime- ...
- 【Vue】style和class 列表渲染 使用v-for进行循环 监控失效 双向数据绑定 过滤案例 事件修饰符
目录 昨日回顾 style和class class属性的三种设置方法 style属性的三种设置方法 条件渲染 列表渲染 使用v-for进行循环 循环数字 循环字符串 循环对象 循环数组 标签key值加 ...
- C语言-三子棋项目
开源地址 https://kxd.lanzoul.com/iLwHG0e4nupc 肯定有大量BUG 求指出 电脑自动下棋的算法很差 毕竟我也没特意去研究
- BUUCTF-[SUCTF2019]EasySQL
[SUCTF2019]EasySQL 这个连闭合都测试不出来,就有点无从下手了. 额,随手输了一个1;show tables;出来了表名.一通操作之后,点开了别人的wp,学习了一波. 然后知道了题目中 ...