【问题标题】:Run Buffer(.exe) without writing files in Nodejs运行 Buffer(.exe) 而不在 Nodejs 中写入文件
【发布时间】:2020-01-06 07:34:42
【问题描述】:

假设我在使用 C 语言创建的终端中有一个控制台应用程序,它喊着“Hello world!” 该程序称为hello.exe。 我将hello.exe 上传到静态服务器。

现在我可以通过在 chrome 中输入以下地址来下载文件。 http://localhost:8080/hello.exe

或者我可以使用Nodejs 中的http 方法获取一个Blob 对象。 有没有办法在不制作文件的情况下立即运行这个获得的 Blob 对象?并获取字符串Hello world!

没有找到类似的主题。 我是否需要立即创建和运行文件并删除它? 我想要的是文件运行而不是保留在我的电脑上。

【问题讨论】:

    标签: node.js blob buffer exec child-process


    【解决方案1】:

    我不知道有什么方法可以运行 .exe 文件而不先将其放在磁盘上。您基本上需要编写自己的 exe 加载程序,该加载程序从内存而不是磁盘工作,这将是不小的努力。

    请记住,在没有任何用户干预的情况下自动运行从诸如http://somedomain.com/hello.exe 之类的 URL 获取的某些可执行文件的客户端可能是一个非常危险的客户端,因为流氓 Web 服务器可以向其发送任何造成各种危害的任意可执行文件(病毒、勒索软件等)。

    我是否需要立即创建和运行文件并删除它?

    是的,程序运行完毕后将其擦除。

    我希望文件能够运行而不是保留在我的电脑上。

    您只需要在它运行后的某个时间点对其进行清理。如果您有程序化客户端,将文件放在应用程序可以定期清理的应用程序级临时目录中应该没什么大不了的。如果这是来自浏览器,则用户控制文件在磁盘上的位置,用户控制文件何时被删除 - 您无法在网页中自行管理。

    或者我可以使用 Nodejs 中的 http 方法获取 Blob 对象。

    您可以下载二进制文件。不确定你在这里问的到底是什么。

    【讨论】:

    • 很抱歉延迟采用。我忘了。当我想看到上述情况时,我很好奇一般如何工作,这很有帮助。谢谢你的回答。
    猜你喜欢
    • 2014-07-08
    • 2023-03-21
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    相关资源
    最近更新 更多