我想在Angular中上传图片并将其保存在Folder Assets下(不使用API)
答案 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的情况下上传图片是静态的。