use*_*798 6 upload ruby-on-rails image ruby-on-rails-3 carrierwave
我正在尝试确定远程网址是否是图片.大多数网址都有.jpg,.png等...但有些图像,如谷歌图片,没有扩展名...即
我尝试使用FastImage来确定url是否是图像.当任何URL被送入它时它可以工作......
如何确保远程URL使用FastImage,上传的文件使用白名单?这是我的上传者的内容.无法识别Avatar_remote_url ...我在上传器中如何操作来测试远程网址而不是常规文件.
def extension_white_list
if defined? avatar_remote_url && !FastImage.type(CGI::unescape(avatar_remote_url)).nil?
# ok to process
else # regular uploaded file should detect the following extensions
%w(jpg jpeg gif png)
end
end
Run Code Online (Sandbox Code Playgroud)
如果您需要使用的只是一个像这样的 url,您可以向服务器发送 HEAD 请求来获取图像的内容类型。从中您可以获得扩展名
require 'net/http'
require 'mime/types'
def get_extension(url)
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true if uri.scheme == 'https'
request = Net::HTTP::Head.new(uri.request_uri)
response = http.request(request)
content_type = response['Content-Type']
MIME::Types[content_type].first.extensions.first
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2010 次 |
| 最近记录: |