%
include("language.html")
function Split(fullstring, separator)
local findstartindex = 1
local splitindex = 1
local splitarray = {}
while true do
local findlastindex = string.find(fullstring, separator, findstartindex)
if not findlastindex then
splitarray[splitindex] = string.sub(fullstring, findstartindex, string.len(fullstring))
break
end
splitarray[splitindex] = string.sub(fullstring, findstartindex, findlastindex-1)
findstartindex = findlastindex+string.len(separator)
splitindex = splitindex+1
end
return splitarray
end
function urlencode_special(s)
s = s.gsub (s, "\n", "\r\n")
s = s.gsub (s, "([^%w ])",
function (c) return s.format ("%%%02X", s.byte(c)) end)
return s
end
local file_list = _POST["filelist"] or ""
local dir_list = _POST["dirlist"] or ""
local expiretime = _POST["expiretime"] or ""
local downloadlimit = _POST["downloadlimit"] or ""
local downloadpass = _POST["downloadpass"] or ""
local mailaddress = _POST["mailaddress"] or ""
local sender_mailaddress = _POST["sender_mailaddress"] or ""
local mail_message = _POST["mail_message"] or ""
local localaddress = _POST["localaddress"] or ""
if _SESSION["username"] == nil or _SESSION["currentpath"] == nil then
print("")
exit()
end
if string.find(file_list, "../") or string.find(file_list, "..\\") then
print("")
exit()
end
if string.find(dir_list, "../") or string.find(dir_list, "..\\") then
print("")
exit()
end
local currentpath = string.gsub(_SESSION["currentpath"],":{{","%[")
currentpath = string.gsub(currentpath,"}}:","%]")
local strPassword = ""
local outputHTML = ""
if file_list ~= "" or dir_list ~= "" then
if downloadlimit == "" then
downloadlimit = "-1"
end
if mail_message ~= "" then
local msg = specialhtml_encode(mail_message)
msg = msg.gsub(msg, "\n", "
")
strPassword = strPassword.."
"..LANG["str_field_message"]..": "..msg.."
|
"
end
if downloadpass ~= "" then
strPassword = strPassword..""..LANG["password"].." "..specialhtml_encode(downloadpass).." |
"
end
local files = Split(file_list, "||")
for _,filename in pairs(files) do
if filename ~= "" then
result = c_UpdateWebLink(_SESSION["username"],filename,currentpath,expiretime,downloadlimit,downloadpass,mailaddress,sender_mailaddress)
if result ~= "" and result ~= "noperm" then
local url = localaddress.."?download&weblink="..result.."&realfilename="..urlencode_special(filename).."\n"
outputHTML = outputHTML..""..specialhtml_encode(filename).." | "..LANG["button_downpicture"].." |
"
c_AddWebLog("User '".._SESSION["username"].."' created Web-Link for '"..filename.."'",_SESSION_ID,DOMAIN_LOG_WEB_RESPOND)
else
if result == "noperm" then
print(LANG["make_weblink_error"])
exit()
end
end
end
end
local dirs = Split(dir_list, "||")
for _,filename in pairs(dirs) do
if filename ~= "" then
result = c_UpdateWebLink(_SESSION["username"],filename,currentpath,expiretime,downloadlimit,downloadpass,mailaddress,sender_mailaddress)
if result ~= "" and result ~= "noperm" then
local url = localaddress.."?download&weblink="..result.."\n"
outputHTML = outputHTML..""..specialhtml_encode(filename).." | "..LANG["button_downpicture"].." |
"
c_AddWebLog("User '".._SESSION["username"].."' created Web-Link for '"..filename.."'",_SESSION_ID,DOMAIN_LOG_WEB_RESPOND)
else
if result == "noperm" then
print(LANG["make_weblink_error"])
exit()
end
end
end
end
if mailaddress ~= "" and localaddress ~= "" and outputHTML ~= "" then
local subject = LANG["send_file_tip"].." (Wing FTP Server)"
if sender_mailaddress == "" then
subject = _SESSION["username"].." "..subject
else
subject = specialhtml_encode(sender_mailaddress).." "..subject
end
local content = [[
Wing FTP Server - Weblink
|
]]..strPassword..[[
]]..LANG["thread_name"]..[[ | ]]..LANG["geturl_title"]..[[ |
]]..outputHTML..[[
|
|
|
]]
local result = c_SendMessage(mailaddress, subject, content, true, sender_mailaddress)
if result == false then
print(LANG["send_email_error"])
else
print(RESULT_STR[1])
end
else
if outputHTML == "" then
print(LANG["make_weblink_error"])
else
print(LANG["str_invalid_email"])
end
end
else
print(LANG["no_checkbox"])
end
%>