您的位置:首页 > 科技 > 能源 > seo简单速排名软件_佛山市外贸网站建设价格_口碑营销5t_个人网页在线制作

seo简单速排名软件_佛山市外贸网站建设价格_口碑营销5t_个人网页在线制作

2025/1/15 22:38:17 来源:https://blog.csdn.net/unix2linux/article/details/143951875  浏览:    关键词:seo简单速排名软件_佛山市外贸网站建设价格_口碑营销5t_个人网页在线制作
seo简单速排名软件_佛山市外贸网站建设价格_口碑营销5t_个人网页在线制作

在这里插入图片描述

local os = require 'os'
local upload = require 'resty.upload'

get_os_type

local function get_os_type()local os_type = 'unknown'if package.config:sub(1,1) == '\\' thenos_type = 'windows'elseif package.config:sub(1,1) == '/' thenos_type = 'unix'endreturn os_type
end

is_windows

local function is_windows()if get_os_type() == 'windows' thenreturn trueendreturn false
end

get_file_name

local function get_file_name(response)local _file_name = ngx.re.match(response, '(.+)filename="(.+)"(.*)')if _file_name then return _file_name[2]end
end

get_timestamp

local function get_timestamp_ss()local _timestamp = string.format('%d', os.time())return _timestamp
end
local function get_timestamp_sss()local _timestamp = string.format('%.3f', ngx.now())return _timestamp
end
local function get_timestamp_linux()local _pipe = io.popen('linux_date "+%s%3N"')local _timestamp = _pipe:read("*a")_pipe:close()_timestamp = _timestamp:gsub('\r\n$', '')_timestamp = _timestamp:gsub('\n$', '')return _timestamp
end
local function get_timestamp()return get_timestamp_sss()
end

get_file_path

local function assert_path_file(filePath)local _file_path = filePathif (is_windows()) then_file_path = string.gsub(_file_path, '/', '\\')end_status = os.execute('if not exist ' .. _file_path .. ' mkdir ' .. _file_path)
end
local function get_file_ext(fileName)local _file_ext = string.match(fileName, '(%.[^.]+)$')return _file_ext
end
local function write_txt_file(filePath, context)local _txt_file = nil_txt_file = io.open(filePath, 'w+')if _txt_file then_txt_file:write(context)_txt_file:close()end_txt_file = nil
end
local function get_file_path(uploadFile)local _status = falselocal _file_path = ngx.var.client_upload_dirlocal timestamp = os.time()assert_path_file(_file_path)local dateTable = os.date('*t', timestamp)_file_path = string.format('%s/%s', _file_path, string.format('%04d', dateTable.year))assert_path_file(_file_path)_file_path = string.format('%s/%s', _file_path, string.format('%02d', dateTable.month))assert_path_file(_file_path)_file_path = string.format('%s/%s', _file_path, string.format('%02d', dateTable.day))assert_path_file(_file_path)_file_path = string.format('%s/%s', _file_path, string.format('%02d', dateTable.hour))assert_path_file(_file_path)_file_path = string.format('%s/%s', _file_path, uploadFile)if (is_windows()) then_file_path = string.gsub(_file_path, '/', '\\')endreturn _file_path
end

main

local i = 0
local message = ''
while true dolocal form_type, form_response, form_error = form:read()if not form_type thenngx.say('failed to read: ', form_error)returnendif form_type == 'header' thenif form_response[1] ~= 'Content-Type' thenfile_name = get_file_name(form_response[2])if file_name theni = i + 1file_path = get_file_path(file_name)file = io.open(file_path, 'wb+')if not file thenmessage = string.format('{"code":1,"msg":"%s"}', 'Failed to open file')ngx.say(message)returnendelseendendelseif form_type == 'body' thenif file thenfile_length = file_length + tonumber(string.len(form_response))    file:write(form_response)elseendelseif form_type == 'part_end' thenif file thenfile:close()file = nillocal _upload_dir_length = string.len(ngx.var.client_upload_dir) + 1_file_path = '/upload' .. string.sub(file_path, _upload_dir_length)if (is_windows()) then_file_path = string.gsub(_file_path, '\\', '/')endmessage = string.format('{"code":0,"msg":"%s","data":{"path":"%s"}}', 'success', _file_path)ngx.say(message)endelseif form_type == 'eof' thenbreakelseend
end
if (i == 0) thenmessage = string.format('{"code":1,"msg":"%s"}', 'Please upload at least one file!')ngx.say(message)return
end

conf

location /api/sys/now {content_by_lua_block {ngx.header.content_type = 'text/html; charset=utf-8'local result = string.format('{"code":0,"msg":"success","data":{"timestamp":"%s","now":"%s"}}', string.format('%.3f', ngx.now()), os.date("%Y-%m-%d %H:%M:%S"))ngx.say(result)}
}
D:\msys64\home\unix2linux\lua2>curl "http://localhost:9999/api/sys/now" -s | jq
{"code": 0,"msg": "success","data": {"timestamp": "1732241439.300","now": "2024-11-22 10:10:39"}
}

demo

D:\msys64\home\unix2linux\lua2>curl -X POST -F"file=@lua.png" "http://localhost:9999/api/file/upload"
{"code":0,"msg":"success","data":{"source":"lua.png","path":"/upload/2024/11/22/09/1732240131.092.png"}}D:\msys64\home\unix2linux\lua2>curl http://localhost:9999/upload/2024/11/22/09/1732240131.092.png.txt
lua.png
D:\msys64\home\unix2linux\lua2>

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com