下载文件

简介: 下载文件
curl = require("luacurl")
require("md5")
-- 下载图片
function get_img(url, c)
    local result = {}
    if c == nil then
        c = curl.new()
    end
    c:setopt(curl.OPT_URL, url)
    c:setopt(curl.OPT_WRITEDATA, result)
    c:setopt(curl.OPT_WRITEFUNCTION, function(tab, buffer)
        table.insert(tab, buffer)
        return #buffer
    end)
    local ok = c:perform()
    return ok, table.concat(result)
end
-- 图片url
downloadurl = "http://192.168.75.60:8090/FlexerDesigner/js/easyui134/themes/icons/filesave.png"
-- 函数调用
ok, fileByte = get_img(downloadurl)
-- 看是否执行成功
print(ok)
-- md5转码
md5 = md5.sumhexa(fileByte)
print(md5)
--[[
-- 保存图片
file = io.open("filesave.png", "w")
if(file) then
  file:write(fileByte);
  file:close();
end
]]点击复制复制失败已复制


这种写法是将远端文件的内容全部加载到 Lua 变量中( fileByte 变量),这种方式在资源有限的嵌入式场景不够优雅,在嵌入式场景中尽量使用的方式来下载,改版示例:

local curl = require("luacurl")
local curlClient = curl.new()
local file = io.open("/tmp/firmware.jx", "wb+")
curlClient:setopt(curl.OPT_URL, url)
curlClient:setopt(curl.OPT_WRITEFUNCTION, function(_, buffer)
    file:write(buffer)
    return #buffer
end)
curlClient:perform()
file:close()
目录
相关文章
|
Shell
从FTP服务器下载文件
从FTP服务器下载文件
89 0
|
缓存 Java
sevlet实现下载文件功能
希望做一个小板块,实现文件的上传和下载,那么上传实现了,就需要实现下载,阅读了各位的博客总结了一下。在网页中通过超链接是可以访问我的资源的,浏览器不可访问的资源他就会下载到本地,像一些浏览器可以直接访问的如图片,txt文件浏览器会直接打开。这就需要我们在sevlet中统一处理文件下载。
144 0
sevlet实现下载文件功能
文件下载
文件下载
79 0
|
Linux C# iOS开发
使用 C# 下载文件的十八般武艺
文件下载是一个软件开发中的常见需求。本文从最简单的下载方式开始步步递进,讲述了文件下载过程中的常见问题并给出了解决方案。并展示了如何使用多线程提升 HTTP 的下载速度以及调用 aria2 实现非 HTTP 协议的文件下载。
558 0
使用 C# 下载文件的十八般武艺
|
缓存
上传文件与下载文件不一致的怪事
上传文件与下载文件不一致的怪事
422 0