2

我的网络上有一个 samba 服务器,其中包含许多目录,其中一个目录充满了 .xls Microsoft Excel 文档。

我想要实现的基本上是远程目录中的文件列表,然后我可以将其混搭成一个包含远程 IP 的链接。最终结果基本上是目录中文件的实时表,用户可以单击它来打开他们需要的文件。

我已经阅读了以下做类似事情的方法:

basedir = '.'
files = Dir.glob("*.xls")

我正在努力解决的是如何使 basedir 成为远程 IP,以及如何将其构建到我的模型/控制器中。

理想情况下,我想做这样的事情:

文件控制器.rb

class FilesController < ApplicationController

 basedir = '192.168.1.1/files/path/to/xlsdocuments/'

 def index
 @xls_files = Dir.glob("*.xls")

 respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @articles }
 end
end

然后,这将允许我在我的视图中遍历 @xls_files。

这甚至有可能吗?

更新

在我的控制器中使用上面的代码如下,我没有收到任何错误,但我不知道如何显示文件名:

class DocumentsController < ApplicationController
before_filter :authorize, only: [:new, :edit, :update]
basedir = '192.168.1.1/common/'
  # GET /documents
  # GET /documents.json
  def index
    @documents = Document.all
    @xls_files = Dir.glob("*.xls")
    @xls_files = @xls_files.split('\n')

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @documents }
    end
  end

我在我的视图中使用以下内容遍历文件名:

<% @xls_files.each do |xls| %>
 file name
<% end %>

这输出file name. 知道如何输出实际文件名吗?

4

2 回答 2

2

对于其他可能想要这样做的人,这些是我为使其工作而采取的步骤:

  1. 在本地挂载远程文件夹。

    fusermount -u ~/yourmountdirectory

  2. 列出本地(远程)目录的内容

    @xls_files = Dir.glob("/home/danny/nurserotas/*")

3.查看文件的输出列表

<ul>
<% @xls_files.each do |xls| %>
<li><%= xls %></li>
<% end %>
</ul>
于 2012-08-10T11:10:52.553 回答
0

您是否尝试过使用这样的命令行:

@xls_files = `ssh 192.168.1.1 'ls /path/to/dir *.xls'`
@xls_files = @xls_files.split('\n')
于 2012-08-09T16:45:53.297 回答