无法从 GUI 上传文件
Unable to upload file from GUI
我正在尝试在自定义视图中上传文件。文件上传格式如下:
<form id="logo-splash-form" action="<%=luci.dispatcher.build_url("admin/system/upload")%>">
<input id="logo-splash" name="logo-splash" type="file" />
<input type="button" value="Upload" onclick="fileUpload('logo-splash')" />
</form>
使用以下 js 函数:
function fileUpload(fileName)
{
var url = '<%=luci.dispatcher.build_url("admin/system/upload")%>';
document.getElementById('logo-splash-form').enctype = 'multipart/form-data';
document.getElementById('logo-splash-form').submit();
}
和以下控制器:
function upload()
local fp
local sys = require "luci.sys"
local path = "/etc/mypath/"
local ul = luci.http.formvalue("logo-splash")
local file = "test.jpg"
-- FILE UPLOAD
luci.http.setfilehandler(
function(meta, chunk, eof)
if not fp then
fp = io.open(path .. meta.file, "w")
end
if chunk then
fp:write(chunk)
end
if eof then
fp:close()
end
end
)
luci.http.redirect(luci.dispatcher.build_url('admin/system/splashscreen'))
end
然而什么也没有发生。该文件未创建,我在控制台上没有看到 logread
.
的消息错误
我不知道为什么setfilehandler
好像没有被调用,我现在被这个问题困住了...
我正在用一个小的 jpg 文件测试上传,test.jpg,大约 10ko,所以我认为这不是大小问题。
如何setfilehandler
成功上传我的文件?提前致谢。
最后我用提交按钮替换了按钮,没有调用任何函数:
<input type="submit" class="cbi-input-apply" value="<%:Upload%>" />
我使用的上传过程与您在 controller/admin/system.lua
中看到的相似,在函数 action_flashops()
中
我正在尝试在自定义视图中上传文件。文件上传格式如下:
<form id="logo-splash-form" action="<%=luci.dispatcher.build_url("admin/system/upload")%>">
<input id="logo-splash" name="logo-splash" type="file" />
<input type="button" value="Upload" onclick="fileUpload('logo-splash')" />
</form>
使用以下 js 函数:
function fileUpload(fileName)
{
var url = '<%=luci.dispatcher.build_url("admin/system/upload")%>';
document.getElementById('logo-splash-form').enctype = 'multipart/form-data';
document.getElementById('logo-splash-form').submit();
}
和以下控制器:
function upload()
local fp
local sys = require "luci.sys"
local path = "/etc/mypath/"
local ul = luci.http.formvalue("logo-splash")
local file = "test.jpg"
-- FILE UPLOAD
luci.http.setfilehandler(
function(meta, chunk, eof)
if not fp then
fp = io.open(path .. meta.file, "w")
end
if chunk then
fp:write(chunk)
end
if eof then
fp:close()
end
end
)
luci.http.redirect(luci.dispatcher.build_url('admin/system/splashscreen'))
end
然而什么也没有发生。该文件未创建,我在控制台上没有看到 logread
.
我不知道为什么setfilehandler
好像没有被调用,我现在被这个问题困住了...
我正在用一个小的 jpg 文件测试上传,test.jpg,大约 10ko,所以我认为这不是大小问题。
如何setfilehandler
成功上传我的文件?提前致谢。
最后我用提交按钮替换了按钮,没有调用任何函数:
<input type="submit" class="cbi-input-apply" value="<%:Upload%>" />
我使用的上传过程与您在 controller/admin/system.lua
中看到的相似,在函数 action_flashops()