2015-04-15 4 views
1

Lua начинающий здесь. :)Скачать файл по url in 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-х годов, а затем ничего не сохраняется. Существует созданный test.jpg, но он пуст. Я также попытался добавить w + b к второму параметру io.open(), но не работал.

ответ

4

следующие работы:

-- 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-адрес не может быть достигнут (в этом случае сценарий, который я опубликовал, вернет ошибку).

+0

Спасибо, я попробовал, но у меня есть тайм-аут. Test.lua: 4: Тайм-аут стек отслеживающий: \t [C]: в функции 'ошибка' \t ... я \ Downloads \ ZeroBraneStudio \ myprograms \ Autonomy \ Test.lua: 4: в основной кусок \t [ C]: at 0x00402a57 – sceiler

+0

Это означает какую-то проблему подключения, но не проблема с сценарием Lua. Попробуйте получить один и тот же URL-адрес от браузера на том же компьютере, и вы, вероятно, получите ту же ошибку. –

+0

Я пытался, но нет проблем с его открытием в моем браузере (хром). – sceiler

 Смежные вопросы

  • Нет связанных вопросов^_^