ruby-on-rails - 您将如何在 Rails 控制器中验证上传文件的 mime_type?
问题描述
我在控制器操作中加密我的 Shrine 文件上传,并且在做任何其他事情之前需要某种方式来验证他们的 mime 类型。Shrine 的验证插件很棒,但它们不适用于加密文件。我需要想办法解决这个问题。
这里的建议是针对 ActiveStorage 的,而且似乎不合适。第一篇文章建议在模型中进行验证,但我需要在控制器中进行。可能像...
def create
image = params.require(:id_doc).fetch(:image)
respond_to do |format|
if image.content_type == 'image/jpeg' || image.content_type == 'image/png' && image.size <= 3.megabytes
#encrypt file and save
format.html { redirect_to root_path }
else
format.html { redirect_to onboard_queued_path }
end
end
解决方案
答案在文档中。
因为我想在将文件传递给其他任何东西之前确定 mime 类型,所以我只需Shrine.mime_type(image)
在控制器中执行。
推荐阅读
- python - 如何从字典值返回对象?
- typescript - Typescript 数组实现的接口
- angular - 如何使用 rxjs 的过滤器运算符?
- r - 将 `NA` 扩展为填充有分组变量的多行
- sql-server - 用于 XML 的 T-SQL。如何获取每个 Measure 的所有 element_ID(示例数据)
- scala - 创建函数以在断点处对序列进行分组
- azure - 有什么方法可以转换 Azure Blob 存储中 json 文件的编码?
- wordpress - 手动将 WooCommerce 订单从待付款发送到支付网关
- sql - 从 SQL SELECT 语句中的数组更改日期格式
- python - 将修改后的 *args 传递给 python 中的基类