Angular-如何在没有后端的情况下测试Internet上传速度?

时间:2018-07-12 15:27:12

标签: javascript angular typescript file-upload speed-test

我想将文件上传到在localhost上运行时从其提供Angular应用程序的文件夹。如果不使用后端,我将找不到任何解决方案。

例如,我只想上传一个图像文件,该文件应复制到项目的指定文件夹中。仅使用Angular即可完成此操作,而无需使用任何后端脚本或访问任何API端点。

4 个答案:

答案 0 :(得分:3)

根据您的Web主机,您可以使资产文件夹通过FTP访问。 从javascript(角度是javascript)进行FTP调用并不那么困难。互联网上(例如this)上有很多例子和疑问

为什么不这样做:

  • 可以在已编译的javascript代码中访问ftp连接的凭据。稍加努力,每个人都可以找到它。
  • 您通过webhosts防火墙打开的每个门都是一个额外的漏洞。这就是为什么每个人都建议您添加用于上传文件的API端点,以便始终保留可能要上传内容的字符串的原因。

编辑:

当我再次阅读您的问题和所有子答案时,我(认为)发现您正在构建一个类似本机的应用程序,没有后端,只有一个角度单页的前端应用程序。我能理解为什么(您可以在支持javascript的应用程序中的每个平台上运行它),但是遇到的问题只是整个系列的第一个。

如果是这种情况,则不会像您将其存储在本地那样将其称为uploading

但是,好消息是您有localstorage用于在客户端的HDD上存储临时数据。这不是一个非常large的空间,但却是...

答案 1 :(得分:2)

assets文件夹是Angular应用程序的静态服务文件夹之一。它位于服务器上,因此您必须在不点击服务器(HTTP服务器,API或其他任何东西)的情况下向其中添加文件。

即使在本地主机上运行您的应用程序时,后台也有一个Web服务器,因此它的行为与已部署的应用程序完全相同,并且您无法通过Angular应用程序将文件添加到资产文件夹中。

我不知道您到底想对上传的文件做什么,但是:

  • 如果您只想在客户端上并在一个用户会话中使用它们,则可以将文件存储在javascript变量中并对其进行操作
  • 如果要在用户之间或在用户会话之间共享它们,则需要将它们存储在服务器上,并且不能绕过API或某些HTTP服务器配置

答案 2 :(得分:2)

基于您对其中一项评论的澄清:

  

我正在尝试开发一个小型速度测试应用程序,在该应用程序中,用户可以从系统上载任何文件以检查上载和下载速度。

避免拥有自己的后端的唯一方法是使用第三方API。

有一些专用的速度测试网站,它们也提供API访问。例如:

请注意,其中许多API是付费服务。

此外,我已经找到了这个 https://github.com/ddsol/speedtest.net,这可能表明speedtest.net具有某种免费的API层。但这取决于您进行调查。

该问题可能也有帮助,因为它在React Native中使用speedtest.net显示:Using speedtest.net api with React Native

答案 3 :(得分:1)

您可以使用第三方库,例如ng-speed-test。例如,这里是一个Angular库,该库具有托管在第三方服务器(即GitHub)上的图像以测试互联网速度。