Witam,
chciałbym zapisywać pliku przekazywane z formularza na serwerze w określonym katalogu. Formularz oczywiście umożliwia wysyłanie pliku. Stworzyłem akcesor, który to przechwytuje plik i ma zapisywać do bazy danych oraz do wybranego katalogu.
[code]
PRODUCTS_DIRECTORY = “#{RAILS_ROOT}/public/product_images/”
def uploaded_picture=(picture_field)
if picture_field != “”
self.picture_name = base_part_of(picture_field.original_filename)
self.picture_content_type = picture_field.content_type.chomp
self.picture = picture_field.read
directory = Product::PRODUCTS_DIRECTORY + self.producer.name + "/" + self.name
FileUtils.mkdir_p directory
# create the file path
path = File.join(directory, self.picture_name)
# write the file
File.open(path, "wb") { |f| f.write(picture_field.read) }
end
end[/code]
Co prawda plik jest zapisywany do bazy danych poprawnie, ale już w przypadku wybranego katalogu nie do końca prawidłowo, bo jego rozmiar zawsze wynosi 0b. Czy zna ktoś może powód i rozwiązanie tego problemu?