url 在 lua 下载文件

Download file by url in lua

Lua 初学者。 :)

我正在尝试通过 url 加载一个文件,但不知何故,我太愚蠢了,无法让 SO 上的所有代码示例为我工作。

How to download a file in Lua, but write to a local file as it works

downloading and storing files from given url to given path in 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 秒,之后什么都没有保存。有一个 created test.jpg 但它是空的。 我还尝试将 w+b 添加到 io.open() 第二个参数,但没有成功。

以下作品:

-- retrieve the content of a 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

-- save the content to a file
local f = assert(io.open('test.jpg', 'wb')) -- open in "binary" mode
f:write(body)
f:close()

你的脚本对我也适用;如果无法访问 URL,则该文件可能为空(在这种情况下,我发布的脚本将 return 出错)。