Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 活动存储-防止下载-尽可能在浏览器中打开文件_Ruby On Rails_Rails Activestorage - Fatal编程技术网

Ruby on rails 活动存储-防止下载-尽可能在浏览器中打开文件

Ruby on rails 活动存储-防止下载-尽可能在浏览器中打开文件,ruby-on-rails,rails-activestorage,Ruby On Rails,Rails Activestorage,我使用的是rails\u blob\u url(o.audio\u file),但这很烦人,因为url不会在浏览器中打开文件,而是将文件作为附件下载(这不是音频文件的默认浏览器行为) 我希望浏览器可以按它所希望的方式打开文件。我不想强制下载文件 rails_blob_url(o.audio_file, disposition: :inline) 不起作用。除了使用rails\u blob\u url(o.audio\u file,disposition::inline)还必须允许内容类型 Ra

我使用的是
rails\u blob\u url(o.audio\u file)
,但这很烦人,因为url不会在浏览器中打开文件,而是将文件作为附件下载(这不是音频文件的默认浏览器行为)

我希望浏览器可以按它所希望的方式打开文件。我不想强制下载文件

rails_blob_url(o.audio_file, disposition: :inline)

不起作用。

除了使用
rails\u blob\u url(o.audio\u file,disposition::inline)
还必须允许内容类型

Rails.application.config.active_storage.content_types_allowed_inline += [
  "audio/mp3",
  "audio/mp4",
  "audio/mpeg"
]
此时默认的内容类型是:
[“image/png”、“image/gif”、“image/jpg”、“image/jpeg”、“image/tiff”、“image/bmp”、“image/vnd.adobe.photoshop”、“image/vnd.microsoft.icon”、“application/pdf”]
,所以我不得不添加所有音频类型


关于它还有更多的信息

如果它确实是一个音频文件,您可能应该呈现一个普通的HTML视图,并嵌入某种HTML5组件来播放音频片段。我不认为依赖浏览器是值得信赖的,因为每个浏览器的处理方式都不同。是的,但是如果我将文件放入/public/song.mp3(或直接上传到S3),文件不是向下隐藏的-它在浏览器中打开,这是提供文件的默认方式,这也是我想要的,但活动存储使这很难做到,并且不知道为什么以及如何禁用它。您可能需要查看内容处置标头。。。您可能可以让浏览器内联呈现,而不是下载。但请注意,并不是每个浏览器(例如手机浏览器)都以完全相同的方式处理它。