1

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()第二个参数,但没有奏效。

4

1 回答 1

7

The following works:

-- 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()

The script you have works for me as well; the file may be empty if the URL can't be accessed (the script I posted will return an error in this case).

于 2015-04-15T15:49:53.023 回答