显示Rails控制器中的图像。

huangapple go评论61阅读模式
英文:

Show image from controller in rails

问题

I am displaying an image in view using
<%= image_tag(@staff.attachment_url(@staff.image), alt: "No image", width: "100px", height: "100px") %> which is working fine.

Here attachment_url is a method for creating a dynamic URL every time you open the image, i.e., staff_profiles/images/b64f8b457dddf968712401bf07a8d08ba7f1ce3a326598ec2144f1c995309e06, and also this image is valid for 30 seconds only. After 30 seconds, when you refresh or open the same URL, it will show Access denied.

Everything here is working fine.

Like this image, I have other attachments to download/view with a download link. When any user opens the page, this attachment_url is called at the time of page load/show method. But after 30 seconds, this download link expires, and when the user clicks on the link, it shows Access Denied. I want to call the attachment_url when the user clicks on the download link after 1 minute or 5 minutes or 10 minutes of page load.

So I need to open the image or create a download link URL from the controller, not like mentioned above, and also want to use the method given above attachment_url, which will help to create a dynamic URL.

Thanks

英文:

I am displaying an image in view using
&lt;%= image_tag(@staff.attachment_url(@staff.image), alt: &quot;No image&quot;, width: &quot;100px&quot;, height: &quot;100px&quot;) %&gt; which is working fine.

Here attachment_url is method for creating dynamic url every time you open the image
i.e. staff_profiles/images/b64f8b457dddf968712401bf07a8d08ba7f1ce3a326598ec2144f1c995309e06
and also this image is valid for 30 second only and after 30 second when you refresh or open the same url it will show Access denied.

Everything here is working fine.

Like this image i have other attachments to download/view with download link. when any user open page this attachment_url calls at the time of page load / show method but after 30 seconds this download link expires and when user click on the link it shows Access Denied. I want to call the attachment_url when user click on download link after 1 minute or 5 minutes or 10 minutes of page load.

So I need to open the image or create download link url from controller, Not like mentioned above and also want to use the method given above attachment_url which will help to create url dynamic.

Thanks

答案1

得分: 0

要显示来自控制器操作的图像,您可以使用send_file

# 在您的控制器中

def attachment_link
    # 构建动态URL的逻辑
    image_url = @staff.attachment_url(@staff.image)

    # 类型:添加正确的文件内容类型
    # disposition:'inline'将在浏览器中显示文件
    send_file image_url, type: "image/png", disposition: "inline"
end
英文:

To display an image from a controller's action. You can use send_file.

# in your controller

  def attachment_link
      # logic to build dynamic URL
      image_url = @staff.attachment_url(@staff.image)

      # type: add the correct file content type
      # disposition: &#39;inline&#39; will display file in browser
      send_file image_url, type: &quot;image/png&quot;, disposition: &quot;inline&quot;
  end

答案2

得分: 0

def attachment_link
  # 生成动态URL的逻辑
  image_url = @staff.attachment_url(@staff.image)
  redirect_to image_url
end
在上面的控制器中对我有用
英文:
def attachment_link
  # logic to build dynamic URL
  image_url = @staff.attachment_url(@staff.image)
  redirect_to image_url
end

In Controller above works for me

huangapple
  • 本文由 发表于 2023年6月12日 16:02:32
  • 转载请务必保留本文链接:https://go.coder-hub.com/76454629.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定