基于 lua-resty-upload 实现简单的文件上传服务

本文介绍了如何借助 lua-resty-upload 模块在 Nginx 中实现文件上传服务。通过解析 lua-resty-upload 的源码,展示了其内部采用的状态机算法来处理文件上传的不同阶段。文章提供了lua脚本示例,并给出了配置Nginx的示例,将上传的文件保存到本地文件系统。
摘要由CSDN通过智能技术生成

文章引用:

1 http://www.codexiu.cn/nginx/blog/11024/

前言:

参照 lua-resty-upload 模块结合Nginx实现对外提供一个url,利用post方式上传文件的lua脚本。测试方式可以利用postman直接调用对外url,以post方式上传文件。

在这里不对Nginx的配置做多余的说明,关于Nginx的配置上传模块可以参见百度。

lua-resty-upload 在 github 上的项目地址为:https://github.com/openresty/lua-resty-upload

一丶接收上传文件的lua脚本

--从环境变量LUA_PATH中搜索lua文件
package.path = './lualib/resty/?.lua;' 
--从LUA_CPATH中搜索C文件
package.cpath = './lualib/?.so;'  

--==========================================
-- 获取上传文件名称
--==========================================
function get_filename(res)  
    local filename = ngx.re.match(res,'(.+)filename="(.+)"(.*)')  
    if filename then   
        return filename[2]  
    end  
end  

--==========================================
-- 获取上传文件路径
--==========================================
function get_fileUploadPath()
    local obj = io.popen("cd")
    local path = obj:read("*all"):sub(1,-2) 

    --记录当前lua脚本所在的绝对路径
    --local cjson = require("cjson.safe")
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值