在Lua中通过URL下载文件。

Lua初学者在这里。 :)

我正在尝试通过url加载文件,但某种程度上我太蠢了,无法让所有这里SO的代码示例为我工作。

如何在Lua中下载文件,但将其写入本地文件

下载给定url中的文件并将其存储到给定路径中的lua

socket = require("socket")
http = require("socket.http")
ltn12 = require("ltn12")

local file = ltn12.sink.file(io.open('test.jpg', 'w'))
http.request {
    url = 'http://pbs.twimg.com/media/CCROQ8vUEAEgFke.jpg',
    sink = file,
}

我的程序运行了20-30秒,之后什么也没有保存。 有一个创建的test.jpg,但是它是空的。 我还尝试将w + b添加到io.open()的第二个参数,但没有起作用。

点赞
用户1442917
用户1442917

以下方法可行:

-- 获取 URL 的内容
local http = require("socket.http")
local body, code = http.request("http://pbs.twimg.com/media/CCROQ8vUEAEgFke.jpg")
if not body then error(code) end

-- 将内容保存到文件中
local f = assert(io.open('test.jpg', 'wb')) -- 以“二进制”模式打开
f:write(body)
f:close()

你的脚本对我也可行;如果无法访问 URL (我发布的脚本会返回错误),则文件可能为空。

2015-04-15 15:49:53