要从FormData获取图像并在Rails API中使用ActiveStorage保存,可以按照以下步骤进行操作:
<form id="imageForm">
<input type="file" name="imageFile" id="imageFile">
<button type="submit">上传图像</button>
</form>
document.getElementById("imageForm").addEventListener("submit", function(event) {
event.preventDefault(); // 阻止表单默认提交行为
var formData = new FormData();
var imageFile = document.getElementById("imageFile").files[0];
formData.append("image", imageFile);
// 调用发送请求的函数,将FormData作为参数传递给后端API
});
class ImagesController < ApplicationController
def create
image = params[:image] # 获取上传的图像数据
# 创建一个新的ActiveStorage Blob对象并将图像数据附加到该Blob上
blob = ActiveStorage::Blob.create_after_upload!(
io: image,
filename: image.original_filename,
content_type: image.content_type
)
render json: { image_url: url_for(blob) }
end
end
在上述代码中,图像数据保存到了ActiveStorage Blob中,并通过url_for
方法获取Blob的URL地址,将其返回给前端。
这是一个简单的示例,仅包含了如何从FormData获取图像并在Rails API中保存到ActiveStorage的基本步骤。对于更复杂的场景,你可能还需要进行身份验证、图像大小限制、图像处理等操作。
推荐的腾讯云相关产品:腾讯云对象存储(COS)
领取专属 10元无门槛券
手把手带您无忧上云