From: "滕祥功" Date: 2008-01-03T12:47:31+09:00 Subject: problems about uploading file Hi guys, I am working on some upload file code , here it is : ================== code begin ================= require 'fileutils' require 'uuid' class Content < ActiveRecord::Base include FileUtils include UUID before_create :write_file_to_disk before_update :write_file_to_disk ......... ................ def update_attributes_from_params params, *args args.each do |attribute| s= params[attribute].blank? ? "self.#{attribute.to_s}=%Q{}" : %Q{self.#{attribute.to_s}="#{params[attribute]}"} eval(s) end update end ......... .............. private def write_file_to_disk file_path = "#{upload_file_path}/#{user_id}/#{file_name}" p " the file size : #{file.size}" File.open(file_path, "wb") do |media_file| media_file.write file.read end self.size = @file.size end def file= file return if file.blank? @file = file ext_name = File.extname file.original_filename # original_file_name and file_name are both content attributes original_file_name = file.original_filename file_name = UUID.new + ext_name end end when I update an file, I do it like this : @content = Content.find params[:content_id] @content.update_attributes_from_params params, :title, :orginazation, :file and it produces : "the file size : 8477823" but when I check the file uploaded , irb >> File.size"/home/tim/upload_test/1/adb12d60-9bd5-012a-a458-000c29f18cec.mp3" => 2176 it's only 2.1K, so any body can tell me why and how to handel it correctly. I tried @content.send("file=",params[:file]),but the real size is still 2176. Thanks, regards! Tim