1

我想在本地主机上运行时将文件上传到提供 Angular 应用程序的文件夹中。如果不使用后端,我无法找到任何解决方案。

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

4

4 回答 4

3

根据您的虚拟主机,您可以通过 FTP 访问您的资产文件夹。从 javascript(角度是 javascript)进行 FTP 调用并不难。互联网上有很多关于它的例子和问题(像这样

为什么你不这样做:

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

编辑:

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

如果是这种情况,我不会调用它uploading,因为您会将其存储在本地。

但好消息是您可以在客户端的 HDD 上localstorage存储临时数据。这不是一个很大的空间,但它是......

于 2018-08-21T08:46:16.450 回答
2

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

即使在 localhost 上运行您的应用程序,引擎盖下也有一个 Web 服务器,因此它的行为与已部署的应用程序完全相同,并且您无法通过 Angular 应用程序将文件添加到资产文件夹。

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

  • 如果您只想在客户端和一个用户会话中使用它们,那么您可以将文件存储在 javascript 变量中并使用它做您想做的事情
  • 如果要跨用户或跨用户会话共享它们,则需要将它们存储在服务器上,并且不能绕过 API 或某些 HTTP 服务器配置
于 2018-08-17T15:47:13.657 回答
2

根据您在其中一条评论中的澄清:

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

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

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

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

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

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

于 2018-08-21T12:04:56.767 回答
1

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

于 2020-03-21T18:11:22.310 回答