如何在文件夹资产angular7下上传图像并保存?

时间:2019-06-28 14:12:35

标签: angular angular6 angular7

我想在Angular中上传图片并将其保存在Folder Assets下(不使用API​​)

3 个答案:

答案 0 :(得分:0)

Angular是客户端代码。即是在发出访问Angular应用程序的请求时,将其下载到客户端计算机并在此处运行。如果进行任何更改,则仅在浏览器会话中可用。一旦您关闭并再次打开,即再次打开并发出新请求,您将获得打开时的应用程序。因此,要保留所有更改,必须将其发送到服务器,为此,您需要服务器端应用程序(API)。

答案 1 :(得分:0)

如果您将静态文件主机与客户端SDK(例如AWS S3)一起使用,则可以执行此操作。

假设您托管在名为mysite.com的s3存储桶中,并且已将此存储桶资产文件夹配置为允许公共上传(可能是个坏主意...)

在您的项目中,您已经运行npm install aws-sdk

并且您有一些AWS上传服务,例如

import {Injectable} from '@angular/core';
import * as AWS from 'aws-sdk';

const BUCKET = 'mysite.com';

@Injectable()
export class AwsUploadService {

   private s3 = new AWS.S3({
     apiVersion: '2006-03-01',
     params: {Bucket: BUCKET}
   });

   uploadToAssets(file: File) {
      this.s3.upload({
        Key: 'assets/' + file.name,
        Body: file
      }, (err, data) => {
         console.log(err, data); // this will tell you if it went ok or not
      });
   }
}

然后,您可以根据需要使用要上载的文件调用该上载函数,但是同样,这可能不是一个好主意,最好拥有一台服务器。如果您不使用静态文件主机,那么不编写服务器就无济于事。

关于在浏览器中使用s3的更多信息:https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/s3-example-photo-album.html

答案 2 :(得分:0)

在不使用API​​的情况下上传图片是静态的。