-
-
Save maxivak/4430975 to your computer and use it in GitHub Desktop.
# in controller | |
# for local files | |
send_file '/path/to/file', :type => 'image/jpeg', :disposition => 'attachment' | |
# for remote files | |
require 'open-uri' | |
url = 'http://someserver.com/path/../filename.jpg' | |
data = open(url).read | |
send_data data, :disposition => 'attachment', :filename=>"photo.jpg" |
Thanks, it's very helpful to me.
I wouldn't recommend using this with user-specified URL because of security issues with using open-uri. This article sums it up well.
I don't think this is a good idea, as you'll be reading all the file data into memory (in data
). Depending on the file size, this becomes a problem.
hello sir,how to get perticular url from json?
$.each(files, function(key,value){
alert(value.link)});
in my code how can i store the link value in avariable?
if you are going to serve aws s3 files like this, you are gonna loose all the benefits like CDN and high availability features.
because this way you download file to the server. it become a network bottleneck.
A lot of load on server's memory. Not recommended.
what about the file after downloading? is it still persist on the server?
i think the file should be removed after the controller response
thank you
shahroon commented on 13 Nov 2019
A lot of load on server's memory. Not recommended.
maybe, pass an enum with some sensible limit?
send_data data.each(512)...
+1. Just to note, if you don't know what type of file you'll be remotely downloading ahead of time, just remove the
.jpg
extension from:filename
!