我有一个添加图片网址form的表格, 如果用户添加图像URL,我想下载图像并保存到本地磁盘(home / documents / image)
我创建图像模型和控制器。
需要帮助
在图像模型中
class Image < ApplicationRecord
has_one_attached :image
require 'open-uri'
image = open('http://example.com/image.png')
IO.copy_stream(image, '~/home/Documents/Images/local_image.png')
end
在图像控制器中
class ImagesController < ApplicationController
def index
@image = Image.new
end
end
在image / index.html.erb
中<%= form_for(@image, url: images_path) do |f| %>
<%= f.text_field :image_url %>
<%=f.submit%>
<% end %>
但出现错误
OpenURI::HTTPError in ImagesController#index 404 not found
答案 0 :(得分:1)
尝试一下
ImagesController
require 'open-uri'
def get_image_url
end
def download_image
read_image = open(params[:image_url]).read
File.open('/home/documents/image/image.png', 'wb') do |file|
file.write read_image
end
redirect_to root_path
end
在图像视图中创建一个新文件
get_image_url.html.erb
<%= form_tag("/images/download_image", method: "post") do %>
<%= label_tag :image_url %>
<%= text_field_tag :image_url %>
<%= submit_tag 'Download' %>
<% end %>
routes.rb
post 'images/download_image'
get 'images/get_image_url'
注意:如果要给图像命名不同,请创建一个方法并将其传递给图像名称,然后根据需要修改代码(动作名称和文件)。
编辑: 获取当前文件夹路径
pwd