我想 1 - 从我的文件系统中选择一个图像并将其上传到服务器/本地 2-使用节点js服务获取其URL。我设法做了第1步,现在我想获取图像网址,而不是在res.end中获取成功消息 这是我的代码
body {
box-sizing: border-box;
background-color: #f0f0f0;
}
.wrapper {
max-height: none;
height: auto;
width: 550px;
box-shadow: 1px 13px 39px -5px #e2e2e2;
display: flex;
flex-direction: row;
}
.wrapper__image-container {
flex: 0 0 auto;
}
.wrapper__image {
width: 100%;
height: auto;
display: block;
}
.wrapper__item {
background-color: lightcoral;
display: flex;
flex-direction: column;
height: 100%;
width: 100%;
margin-right: 30px;
}
.wrapper__content {
padding: 18px;
flex: 1 1 auto;
height: 100%;
}
.wrapper__content--without-height {
padding: 18px;
flex: 1 1 auto;
}
.wrapper__title {
margin-bottom: 27px;
max-height: 80px;
width: 100%;
}
.wrapper__text {
margin-bottom: 20px;
max-height: 75px;
}
.wrapper__title,
.wrapper__text {
overflow: hidden;
flex: 0 0 auto;
}
.wrapper__date {
flex: 0 1 auto;
}
我使用multer上传图片。
答案 0 :(得分:3)
您可以使用AWS S3
执行此类操作,并返回上传图片的网址
const AWS = require('aws-sdk')
AWS.config.update({
accessKeyId: <AWS_ACCESS_KEY>,
secretAccessKey: <AWS_SECRET>
})
const uploadImage = file => {
const replaceFile = file.data_uri.replace(/^data:image\/\w+;base64,/, '')
const buf = new Buffer(replaceFile, 'base64')
const s3 = new AWS.S3()
s3.upload({
Bucket: <YOUR_BUCKET>,
Key: <NAME_TO_SAVE>,
Body: buf,
ACL: 'public-read'
}, (err, data) => {
if (err) throw err;
return data.Location; // this is the URL
})
}
你也可以查看这个快速生成器,它有将图像上传到AWS S3
https://www.npmjs.com/package/speedbe的路径
答案 1 :(得分:0)
我假设您要将图像保存在服务器文件系统上,而不是像AWS S3或Google Cloud Storage这样的存储解决方案,您可以在上传后获取网址。
由于您将它存储在文件系统中,因此您可以使用唯一标识符(如uuid或其他名称)重命名该文件。
然后你可以创建一个GET路由并在查询或路径参数中请求该ID,然后读取具有该ID作为名称的文件并将其发回。