summaryrefslogtreecommitdiff
path: root/file_upload.rb
diff options
context:
space:
mode:
Diffstat (limited to 'file_upload.rb')
-rw-r--r--file_upload.rb31
1 files changed, 16 insertions, 15 deletions
diff --git a/file_upload.rb b/file_upload.rb
index aab6b4e..a23d6a1 100644
--- a/file_upload.rb
+++ b/file_upload.rb
@@ -2,38 +2,38 @@
require 'rubygems'
require 'haml'
-require 'pathname'
require 'sinatra/base'
class FileUpload < Sinatra::Base
configure do
enable :static
enable :sessions
-
- set :views, Pathname.new(__FILE__).dirname.join('views').expand_path
- set :public, Pathname.new(__FILE__).dirname.join('public').expand_path
+
+ set :views, File.join(File.dirname(__FILE__), 'views')
+ set :public, File.join(File.dirname(__FILE__), 'public')
+ set :files, File.join(public, 'files')
end
-
+
helpers do
def flash(message = '')
session[:flash] = message
end
end
-
+
not_found do
haml '404'
end
-
+
error do
haml "Error (#{request.env['sinatra.error']})"
end
-
+
get '/' do
- @files = settings.public.join('files').entries - [Pathname.new('.'), Pathname.new('..')]
-
+ @files = Dir.entries(settings.files) - ['.', '..']
+
@flash = session[:flash]
session[:flash] = nil
-
+
haml :index
end
@@ -41,14 +41,15 @@ class FileUpload < Sinatra::Base
if params[:file]
filename = params[:file][:filename]
file = params[:file][:tempfile]
-
- File.open(settings.public.join('files', filename), 'wb') {|f| f.write file.read }
-
+
+ File.open(File.join(settings.files, filename), 'wb') {|f| f.write file.read }
+
flash 'Uploaded successfully'
else
flash 'You have to choose a file'
end
-
+
redirect '/'
end
end
+