在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
图片上传问题在我们的项目里,需要实现海报的图片上传,便于更好地向外界展示一个社团活动的基本内容,但是在处理中间件相关问题时遇到了一点小小的挫折。不过这并不要紧,OSS对象存储服务固然好,但是 使用用 CarrierWave 处理图像上传首先在在 Gemfile 文件中添加 CarrierWave
之后执行命令安装
CarrierWave 自带了一个 Rails 生成器,用于生成图像上传程序。我们要创建一个名为 picture 的上传程 序:
上传的图像应该对应于activities模型中的一个属性,先看看前人遗留数据库中有没有。 可以看到post_horizontal_image_id和post_vertical_image_id两个属性,应该是用ID寻址。 果不其然还有另一个image表,理论上我们只需要修改app/models/image.rb里的方法就可以。 但是之前他们是用图床的。如果改为本地存储这个数据模型不好使。 在activities模型中添加图像上传程序
再把picture添加到允许修改的属性列表
到这里基本的图像上传功能已经完成了。具体实现的细节在于mount_uploader指令自动生成的一个叫picture_uploader.rb的文件。
因为本地服务器不堪重负,我们学校200个社团,一个社团假设有2场活动,每场活动2张海报,预计800张照片,还需要添加一个验证图像大小的模块,以节约资源。
当然,我们还可以在客户端进行各种限制,例如用accept参数限制图像格式。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论