[BUILD STILL BROKEN] File uploads roughly speaking work (to about same extent as in 0.10)

This commit is contained in:
Alexey Verkhovsky 2005-11-14 08:38:37 +00:00
parent ac72f9b807
commit 0b1a80a852
13 changed files with 172 additions and 297 deletions

View file

@ -6,10 +6,6 @@ class Web < ActiveRecord::Base
Wiki.new
end
def file_yard
@file_yard ||= FileYard.new("#{Wiki.storage_path}/#{address}", max_upload_size)
end
def settings_changed?(markup, safe_mode, brackets_only)
self.markup != markup ||
self.safe_mode != safe_mode ||
@ -84,6 +80,23 @@ class Web < ActiveRecord::Base
address
end
def create_files_directory
return unless allow_uploads == 1
dummy_file = self.wiki_files.build(:file_name => '0', :description => '0', :content => '0')
dir = File.dirname(dummy_file.content_path)
begin
require 'fileutils'
FileUtils.mkdir_p dir
dummy_file.save
dummy_file.destroy
rescue => e
logger.error("Failed create files directory for #{self.address}: #{e}")
raise "Instiki could not create directory to store uploaded files. " +
"Please make sure that Instiki is allowed to create directory " +
"#{File.expand_path(dir)} and add files to it."
end
end
private
# Returns an array of all the wiki words in any current revision
@ -114,32 +127,15 @@ class Web < ActiveRecord::Base
end
end
def create_files_directory
return unless allow_uploads == 1
dummy_file = self.wiki_files.build(:file_name => '0', :description => '0', :content => '0')
dir = File.dirname(dummy_file.content_path)
begin
require 'fileutils'
FileUtils.mkdir_p dir
dummy_file.save
dummy_file.destroy
rescue => e
logger.error("Failed create files directory for #{self.address}: #{e}")
raise "Instiki could not create directory to store uploaded files. " +
"Please make sure that Instiki is allowed to create directory " +
"#{File.expand_path(dir)} and add files to it."
end
end
def default_web?
defined? DEFAULT_WEB and self.address == DEFAULT_WEB
end
def files_path
if default_web?
"#{RAILS_ROOT}/public/#{self.address}/files"
else
"#{RAILS_ROOT}/public/files"
else
"#{RAILS_ROOT}/public/#{self.address}/files"
end
end
end

View file

@ -4,9 +4,9 @@ class WikiFile < ActiveRecord::Base
before_save :write_content_to_file
before_destroy :delete_content_file
validates_presence_of %w( web file_name description )
validates_presence_of %w( web file_name )
validates_length_of :file_name, :within=>1..50
validates_length_of :description, :within=>1..255
validates_length_of :description, :maximum=>255
def self.find_by_file_name(file_name)
find(:first, :conditions => ['file_name = ?', file_name])
@ -34,7 +34,11 @@ class WikiFile < ActiveRecord::Base
end
def content=(content)
@content = content
if content.respond_to? :read
@content = content.read
else
@content = content
end
end
def content
@ -46,6 +50,7 @@ class WikiFile < ActiveRecord::Base
end
def write_content_to_file
web.create_files_directory unless File.exists?(web.files_path)
File.open(self.content_path, 'wb') { |f| f.write(@content) }
end
@ -54,4 +59,6 @@ class WikiFile < ActiveRecord::Base
FileUtils.rm_f(content_path) if File.exists?(content_path)
end
end