Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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/9/ruby-on-rails-3/4.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_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 指定要下载的文件夹

Ruby on rails 指定要下载的文件夹,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,在我的Rails控制器中,我有一条线路 send_file("#{Rails.root}/test/image.png") 我希望我的网页有一个文本框,用户可以填写一个目录,如C:/OldPictures/All/,然后当用户单击调用控制器的链接时,它也会读取文本框中的目录,并将文件image.png下载到指定目录。我可以这样说吗?简短回答,可以 长话短说,由于各种原因,我们通常不允许客户端应用了解服务器上的文件位置。在处理web应用程序时,用户应该与实际存储文件的位置“解耦” 现在来看看代码

在我的Rails控制器中,我有一条线路

send_file("#{Rails.root}/test/image.png")
我希望我的网页有一个文本框,用户可以填写一个目录,如
C:/OldPictures/All/
,然后当用户单击调用控制器的链接时,它也会读取文本框中的目录,并将文件
image.png
下载到指定目录。我可以这样说吗?

简短回答,可以

长话短说,由于各种原因,我们通常不允许客户端应用了解服务器上的文件位置。在处理web应用程序时,用户应该与实际存储文件的位置“解耦”

现在来看看代码:

<form action="your_action_url" method="get" >
  <input name="location" type="text" />
  ...
</form>
没有


出于安全原因,web服务器(通常是web代码)无法查看客户端的文件系统或指定文件下载到的位置。您可以为下载建议一个文件名,但仅此而已(如果要将其设置为文件在服务器上的名称以外的其他名称,请使用
:filename
选项来
send_file
)。下载位置由浏览器、操作系统和用户的某种组合决定。

我的直觉是,服务器(Rails或其他)没有也不能指定文件下载到哪里——出于安全原因,用户/浏览器/操作系统必须做出决定,服务器所能做的就是“这是文件,随你怎么做就怎么做”。我很确定问题是关于指定文件下载到哪里,而不是从哪里来。我很抱歉……我只是需要孩子们休息一下,应该多加注意。:)
send_file(File.join(params[:location], "image.png"))