在lua中通过url下载文件

时间:2015-04-15 15:20:42

标签: lua luasocket

Lua初学者在这里。 :)

我正在尝试通过网址加载文件,不知何故,我太愚蠢了,无法在此处获取所有代码示例,以便为我工作。

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秒,之后没有保存。有一个创建的test.jpg但它是空的。 我还尝试将w + b添加到io.open()秒参数但不起作用。

1 个答案:

答案 0 :(得分:5)

以下作品:

-- 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,则该文件可能为空(在此情况下,我发布的脚本将返回错误)。