bump On Oct 14, 10:58 pm, Christian Fazzini <[email protected]> wrote: > Anyone have a solution to this problem? > > On Oct 12, 12:36 pm, Christian Fazzini <[email protected]> > wrote: > > > My form submits the file. The custom processor I made for Paperclip > > uses FFMPEG. My custom processor expects a style to be set so that it > > can process the audio based on that value. So for example, in my form, > > I set stream_type to 30, my custom processor would process the audio > > file to 30 seconds. > > > Walter, in your example. You already have a style set as a fixed > > string (has_attached_file :pdf,:styles => { :text => { :fake => > > 'variable' } },) > > > Your example is valid, because you are processing again after the file > > is submitted. But, I don't want to reprocess. It would be a waste of > > resources to do this twice. I want do it right the first time around. > > > On Oct 12, 12:17 pm, Walter Lee Davis <[email protected]> wrote: > > > > I built a system in Rails 2.3.8 that accepted PDF uploads and needed > > > to extract their text content using the venerable (read ancient) > > > pdftotext command-line utility. I had to jump through the following > > > hoops to make it work, and this might have some bearing on your > > > solution: > > > > #model > > > has_attached_file :pdf,:styles => { :text => { :fake => > > > 'variable' } }, :processors => [:text] > > > after_post_process :extract_text > > > > private > > > def extract_text > > > file = File.open("#{pdf.queued_for_write[:text].path}","r") > > > plain_text = "" > > > while (line = file.gets) > > > plain_text << Iconv.conv('ASCII//IGNORE', 'UTF8', line) > > > end > > > self.plain_text = plain_text > > > end > > > > #lib/paperclip_processors/text.rb > > > module Paperclip > > > # Handles extracting plain text from PDF file attachments > > > class Text < Processor > > > > attr_accessor :whiny > > > > # Creates a Text extract from PDF > > > def make > > > src = @file > > > dst = Tempfile.new([...@basename, 'txt'].compact.join(".")) > > > command = <<-end_command > > > "#{ File.expand_path(src.path) }" > > > "#{ File.expand_path(dst.path) }" > > > end_command > > > > begin > > > success = Paperclip.run("/usr/bin/pdftotext -nopgbrk", > > > command.gsub(/\s+/, " ")) > > > Rails.logger.info "Processing #{src.path} to #{dst.path} in > > > the text processor." > > > rescue PaperclipCommandLineError > > > raise PaperclipError, "There was an error processing the text > > > for #...@basename}" if @whiny > > > end > > > dst > > > end > > > end > > > end > > > > Within the environs of Paperclip, you can write processors that do > > > pretty much anything, and usually result in a new file saved as a new > > > format in the attachments hierarchy. Once that process is done, you > > > can access the result file and do other stuff with it. But I'm not > > > sure if that answers your question at all, since you don't seem to be > > > facing the same problem I was. > > > > If your form posts a file to Paperclip, you don't get access to the > > > file parts of that form submission directly in your controller, unless > > > I'm missing something fundamental. But a processor can access them > > > directly, at a very low level. > > > > Walter > > > > On Oct 12, 2010, at 12:01 AM, Christian Fazzini wrote: > > > > > Walter Lee, I am trying to pass a value (stream_type) that was in > > > > submitted in my form to :styles using proc. > > > > > Radhames, even if I do all this in the model, without a processor, I > > > > am still not able to get the value of stream_type, that was passed > > > > when the form tried to submit. > > > > > So Philip, this means I would need to reprocess the file and delete > > > > the original? This means I will be processing the file twice? Isn't > > > > this a waste of resources if I only want one processed file that is > > > > adherent to the stream_type? > > > > > On Oct 12, 12:07 am, Philip Hallstrom <[email protected]> wrote: > > > >> has_attached_file gets read when the class file is first read. It > > > >> then sets up the various paperclip methods that do there stuff. > > > >> When it does that, 'instance' is a new/blank record. > > > > >> What you have below will work (if memory serves me right) if you > > > >> save the record, reload it, and then reprocess it. > > > > >> Something along those lines... it's been awhile since I ran into > > > >> this. > > > > >> -philip > > > > >> On Oct 10, 2010, at 1:22 PM, Christian Fazzini wrote: > > > > >>> anyone?? Been on this for days without a solution.... thinking > > > >>> that I > > > >>> may have to switch to another gem just to get this feature to > > > >>> work... > > > > >>> On Oct 7, 3:16 pm, Christian Fazzini <[email protected]> > > > >>> wrote: > > > >>>> I have a stream_type field on my form. When the form submits, > > > >>>> instance.stream_type is blank. To verify this, in my custom > > > >>>> processor > > > >>>> (class ProcessAudio < Processor), I do puts options[:geometry]. > > > > >>>> has_attached_file :media, > > > >>>> :styles => { :original => Proc.new { |instance| > > > >>>> instance.stream_type } }, > > > >>>> :url => '/assets/artists/:artist_id/ > > > >>>> songs/:id/:style.:extension', > > > >>>> :path => ':rails_root/public/assets/ > > > >>>> artists/:artist_id/songs/:id/:style.:extension', > > > >>>> :processors => [:process_audio] > > > > >>>> If I provide a fixed string. For example: > > > > >>>> has_attached_file :media, > > > >>>> :styles => { :original => '30' }, > > > >>>> :url => '/assets/artists/:artist_id/ > > > >>>> songs/:id/:style.:extension', > > > >>>> :path => ':rails_root/public/assets/ > > > >>>> artists/:artist_id/songs/:id/:style.:extension', > > > >>>> :processors => [:process_audio] > > > > >>>> puts options[:geometry] = 30. Why does is it NOT work with proc? > > > > >>>> What is wrong? > > > > >>> -- > > > >>> You received this message because you are subscribed to the Google > > > >>> Groups "Ruby on Rails: Talk" group. > > > >>> To post to this group, send email to [email protected] > > > >>> . > > > >>> To unsubscribe from this group, send email to > > > >>> [email protected] > > > >>> . > > > >>> For more options, visit this group > > > >>> athttp://groups.google.com/group/rubyonrails-talk?hl=en > > > >>> . > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups "Ruby on Rails: Talk" group. > > > > To post to this group, send email to rubyonrails- > > > > [email protected]. > > > > To unsubscribe from this group, send email to > > > > [email protected] > > > > . > > > > For more options, visit this group > > > > athttp://groups.google.com/group/rubyonrails-talk?hl=en > > > > . > >
-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

