Hi all, I am using the following code to upload a file. views: <%= file_field "upload", ''file'' ,:size=> ''30'' %> controller: file_path"#{RAILS_ROOT}/public/email_attachments/#{params[:upload][:file].original_filename}" file = File.new(File.join(file_path), "wb") file.write(params[''file_'' + i.to_s].read) Next I am attaching the uploaded file and sending an email. Everything is working fine. BUT, If I attach a big size file or Image, the file will not be uploaded completely. For Example If I upload a big image, I ll be able to see only half of the image, can anyone tell me the reason and solution to this problem. Thanks in advance, Raju -- Posted via http://www.ruby-forum.com/.
On Mon, Nov 2, 2009 at 9:43 AM, Raju Aralikatti <rails-mailing-list-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> > Hi all, > > I am using the following code to upload a file. > > views: > <%= file_field "upload", ''file'' ,:size=> ''30'' %> > > controller: > file_path> "#{RAILS_ROOT}/public/email_attachments/#{params[:upload][:file].original_filename}" > file = File.new(File.join(file_path), "wb") > file.write(params[''file_'' + i.to_s].read) > > Next I am attaching the uploaded file and sending an email. Everything > is working fine. > > BUT, If I attach a big size file or Image,What exactly is a big size file? I mean, starting from what size is considered big?> the file will not be uploaded > completely. For Example If I upload a big image, I ll be able to see > only half of the image, can anyone tell me the reason and solution to > this problem. >Maybe you''re getting some timeout error? Maybe you can try some plugin for file upload such as attachment_fu or paperclip or anyone you like. Is there any reason why you''re not using some of this and doing the file creation by hand? -- Leonardo Mateo. There''s no place like ~
which server are you using ... you can increase maximum file upload size and maximum execution time as well ... hope this may solve the problem On Nov 2, 3:43 pm, Raju Aralikatti <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Hi all, > > I am using the following code to upload a file. > > views: > <%= file_field "upload", ''file'' ,:size=> ''30'' %> > > controller: > file_path> "#{RAILS_ROOT}/public/email_attachments/#{params[:upload][:file].original_filename}" > file = File.new(File.join(file_path), "wb") > file.write(params[''file_'' + i.to_s].read) > > Next I am attaching the uploaded file and sending an email. Everything > is working fine. > > BUT, If I attach a big size file or Image, the file will not be uploaded > completely. For Example If I upload a big image, I ll be able to see > only half of the image, can anyone tell me the reason and solution to > this problem. > > Thanks in advance, > Raju > -- > Posted viahttp://www.ruby-forum.com/.
Thanks a lot for your reply, I have used multiple file upload here is the view part. <%= file_field "upload", ''file'' ,:size=> ''30'', :style=> ''color:red;''%><br /> Attached Files <input type=''hidden'' name=''file_nos'' id=''file_counter''> <div id="files_list" style=''display:none;'' class=''files_list_class''> <script> var multi_selector = new MultiSelector( document.getElementById(''files_list''), 5 ); multi_selector.addElement( document.getElementById(''upload_file'') ); </script> </div> and javascript. when it goes to the action I will be getting the files attached in params[:file_1], params[:file_2]...... etc. params["file_nos"] is number of files being uploaded and thus it should loop that many times. The controller goes like this: params["file_nos"].to_i.times do |i| if params[''file_''+i.to_s].to_s != "" || params[''file_''+i.to_s] != nil #begin @email_attachment = SupportEmailAttachment.new @email_attachment.filename = params[''file_'' + i.to_s].original_filename @email_attachment.save file_path= "#{RAILS_ROOT}/public/email_attachments/#{params[''file_'' + i.to_s].original_filename}" file = File.new(File.join(file_path), "wb") file.write(params[''file_'' + i.to_s].read) file_path_array << file_path #rescue #end end end Mailer.deliver_create_ticket user_email,file_path_array After the files are uploaded I am attaching all the files in the mail and sending them. So here is my problem, 1. The files attached in the mails are not complete. ie if i have upload any file, there will be all attachments but they wont open, some images uploaded will display only half. I am using apache + mongrel congiguration. Please help me its urgent. Thanks, Raju -- Posted via http://www.ruby-forum.com/.
On Nov 3, 5:50 am, Raju Aralikatti <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> file = File.new(File.join(file_path), "wb") > file.write(params[''file_'' + i.to_s].read)You''re not closing the file you create, which could conceivably cause problems (if you use the block form of File.open you don''t need to worry about that) Fred> file_path_array << file_path > #rescue > #end > end > end > Mailer.deliver_create_ticket user_email,file_path_array > > After the files are uploaded I am attaching all the files in the mail > and sending them. > > So here is my problem, > > 1. The files attached in the mails are not complete. ie if i have upload > any file, there will be all attachments but they wont open, some images > uploaded will display only half. > > I am using apache + mongrel congiguration. > > Please help me its urgent. > > Thanks, > Raju > > -- > Posted viahttp://www.ruby-forum.com/.
Thanks for your reply fred, file = File.new(File.join(file_path), "wb") file.write(params[''file_'' + i.to_s].read) You mean to say my code must be like this, file = File.new(File.join(file_path), "wb") file.write(params[''file_'' + i.to_s].read) file.close But I am not getting the attachments properly in my email. If you can send your email ID I will send an email to you through my app, so that you can tell me what is the problem Thanks, Raju -- Posted via http://www.ruby-forum.com/.
On Nov 3, 9:30 am, Raju Aralikatti <rails-mailing-l...-ARtvInVfO7ksV2N9l4h3zg@public.gmane.org> wrote:> Thanks for your reply fred, > > file = File.new(File.join(file_path), "wb") > file.write(params[''file_'' + i.to_s].read) > > You mean to say my code must be like this, > > file = File.new(File.join(file_path), "wb") > file.write(params[''file_'' + i.to_s].read) > file.close >yup, something like that. File.open(path, ''wb'') do |file| file.write(...) end is nicer because it ensures the file gets closed (obviously you could replicate this yourself but File.open already does it so not much point)> But I am not getting the attachments properly in my email. If you can > send your email ID I will send an email to you through my app, so that > you can tell me what is the problemSounds like you need to isolate the problem: is the mailer fine but it is being given half uploaded files, or is the uploading part happening file but the mailer is ok? Fred> > Thanks, > Raju > -- > Posted viahttp://www.ruby-forum.com/.
In ur form tab write this property => enctype="multipart/form-data" -- Posted via http://www.ruby-forum.com/.