如何编写一个从文件实例中提取 :path 和文件名的方法,以在扫描仪方法中使用?

How can I write a method that extracts :path and file name from the file instance, to use in a scanner method?

我正在尝试从上传的文件中提取路径和文件名,以便我可以 运行 对其进行扫描。谢谢!

我的想法是:

scanner = Bundler::Audit::Scanner.new(root=:path,gemfile_lock=file_file_name)

scanner = Bundler::Audit::Scanner.new(File.dirname,File.file_file_name)

您查看 uploading files 的指南了吗? params 将 return 一个 StringIOFile 对象,以 Tempfile 形式提供上传。使用像 Paperclip 这样的 gem 可以使上传和扫描的过程变得更加简单,因此绝对推荐您尝试一下。

另外,您调用的File方法是class方法,所以您需要传递一个实例给它们。

假设你想扫描临时文件,然后保存或丢弃它,你可以在你的控制器中做这样的事情:

def upload_file
  uploaded_io = params[:uploaded_file]
  tempfile = uploaded_io.tempfile
  path = tempfile.path

  # If you need to separate the dir and filename
  dir = File.dirname(path)
  filename = File.basename(path)
  scanner = Bundler::Audit::Scanner.new(dir, filename)
end