nginx基于lua-resty-upload实现文件上传
来源:互联网 发布:怎样在淘宝上做供货商 编辑:程序博客网 时间:2024/06/06 02:23
package.path = '/usr/local/openresty/lualib/resty/?.lua;'local upload = require "upload"local chunk_size = 4096local form = upload:new(chunk_size)local filelocal filelen=0form:set_timeout(0) -- 1 seclocal filenamefunction get_filename(res) local filename = ngx.re.match(res,'(.+)filename="(.+)"(.*)') if filename then return filename[2] endendlocal osfilepath = "/usr/local/openresty/nginx/html/"local i=0while true do local typ, res, err = form:read() if not typ then ngx.say("failed to read: ", err) return end if typ == "header" then if res[1] ~= "Content-Type" then filename = get_filename(res[2]) if filename then i=i+1 filepath = osfilepath .. filename file = io.open(filepath,"w+") if not file then ngx.say("failed to open file ") return end else end end elseif typ == "body" then if file then filelen= filelen + tonumber(string.len(res)) file:write(res) else end elseif typ == "part_end" then if file then file:close() file = nil ngx.say("file upload success") end elseif typ == "eof" then break else endendif i==0 then ngx.say("please upload at least one file!") returnend
将上面这个 savefile.lua 文件放到了 nginx/conf/lua/ 目录中
nginx.conf 配置文件中添加如下的配置 :
location /uploadfile
{
content_by_lua_file ‘conf/lua/savefile.lua’;
}
用下面的上传命令进行测试成功
curl -F “file=@abc.zip” http://127.0.0.1/uploadfile
注意lua-resty-upload模块只能上传有boundary的post请求体,没有boundary的话需要使用socket来进行传输。
0 0
- nginx基于lua-resty-upload实现文件上传
- 基于 lua-resty-upload 实现简单的文件上传服务
- 通过lua-resty-upload实现文件上传的例子
- Nginx+upload+lua 简单的文件上传
- 使用Nginx Upload Module实现上传文件功能
- 使用 Nginx Upload Module 实现上传文件功能
- struts实现upload文件上传
- 对nginx上传文件的第三方实现nginx-upload-module的修改
- nginx-upload-module模块实现文件断点续传
- nginx-upload-module模块实现文件断点续传
- commons-upload 实现文件的上传功能
- 使用common upload实现文件上传
- bootstrap upload 文件上传的实现过程
- nginx-upload-module文件上传模块问题处理
- lua-resty-ssdb
- lua-resty-ssdb
- 解决nginx + lua 上传文件问题
- Nginx的Upload上传模块
- Bochs 2.6.8的配置文件bochsrc.bxrc修改
- 为已有的web项目添加maven支持
- 单链表实现学生成绩从高到低排序(C语言)
- AJAX——核心XMLHttpRequest对象
- Android开发必备工具类
- nginx基于lua-resty-upload实现文件上传
- MVC学习笔记
- MFC中(TCP/IP)回调函数简析
- sql倒叙null值排在最前面
- 简单分享一个轻量级自动化测试框架目录结构设计
- mysql根据条件删除重复的数据保留一条
- SVN分支与合并透析
- 100行代码实现最简单的基于FFMPEG+SDL的视频播放器(SDL1.x)
- spring 动态 多数据源 数据库 (datasource )配置