概述
用来处理图片上传的
package.path = '/ebank/apps/openresty-web/lualib/resty/?.lua;'
local upload = require "upload"
local chunk_size = 4096
local form = upload:new(chunk_size)
local file
local filelen=0
form:set_timeout(0) -- 1 sec
local filename
function get_filename(res)
local filename = ngx.re.match(res,'(.+)filename="(.+)"(.*)')
if filename then
return filename[2]
end
end
local osfilepath = "/ebank/img/"
local i=0
while 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,err = io.open(filepath,"w")
if not file then
ngx.say("failed to open file ")
ngx.log(ngx.ERR,err)
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
end
end
if i==0 then
ngx.say("please upload at least one file!")
return
end
将上面这个 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来进行传输。
http://blog.csdn.net/myslq/article/details/52484420
最后
以上就是拉长电源为你收集整理的openresty图片上传的全部内容,希望文章能够帮你解决openresty图片上传所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复