openresty图片上传

来源:互联网 发布:查自己淘宝的虚假交易 编辑:程序博客网 时间:2024/06/05 11:56

用来处理图片上传的

package.path = '/ebank/apps/openresty-web/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 = "/ebank/img/"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,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    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来进行传输。

http://blog.csdn.net/myslq/article/details/52484420

原创粉丝点击