我正在尝试从上传的文件中提取路径和文件名,以便我可以在它们上运行扫描程序。谢谢!
我的想法是:
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
将返回StringIO
或File
对象,提供上传为Tempfile
。使用像Paperclip
这样的宝石使上传和扫描的过程变得更加简单,所以肯定会建议尝试一下。
此外,您调用的File
方法是类方法,因此您需要将实例传递给它们。
假设您要扫描Tempfile,然后保存或丢弃它,您可以在控制器中执行以下操作:
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