re: where is it read from?:  I use passenger to serve my rails apps
these days (all running on *nix), and per the passenger docs:

http://www.modrails.com/documentation/Users%20guide.html#_passengertempdir_lt_directory_gt

...
5.10. PassengerTempDir <directory>
Specifies the directory that Phusion Passenger should use for storing
temporary files. This includes things such as Unix socket files,
buffered file uploads, etc.
...

The default for that on *nix is the /tmp dir.  So, under such a setup,
when a user uploads a file via the rails app, that uploaded file is
temporarily saved under the /tmp dir.  That's why I was saying that if
you didn't want to save the file in terms of the app's context, ie you
just want to parse/process the uploaded file's content, you shouldn't
have to do anything else with that /tmp file, since the underlying os
will handle that clean up of /tmp files as necessary.

Jeff

On Mar 23, 5:29 pm, GoodGets <goodg...@gmail.com> wrote:
> @Luke:  Thanks!  Yeah, I saw that tutorial, too.  But, also like you
> said, it still saves it to a model, so I'd rather just let paperclip
> handle all that.  Thank you anyway though.
>
> @Jeff:  Thank you!
> For full disclosure, I'm still a little bit of a noob to Rails (and
> ruby) but I think I get more than the gist of your code.  So,
> definitely a big thanks.
>
> I do have a couple questions as to what's going on though.  Like I get
> that the file is read, along with its contents, but where is it read
> from?  Like, is the file actually uploaded to a temp directory, and
> you're saying that I just don't have to expressly mess with that
> directory?  Or, is it just held in memory in a Rails process
> somewhere?  Might that be worse than just storing the file, then
> deleting it later?
>
> I'm just asking, I honestly don't know.  Also, while the file uploads,
> a Rails process is not tied up, correct?  It's actually being buffered
> by the server?
>
> A big thank you Jeff, and to anyone else that wants to chime in.  I
> think this is definitely a huge start down the right path.
>
> On Mar 23, 11:35 am, Jeff Lewis <jeff.bu...@gmail.com> wrote:
>
>
>
> > One way would be to just process the uploaded-file data from the
> > request as needed and not worry about saving or doing anything else
> > with the tmp-saved uploaded-file itself, something like:
>
> > ### in ./app/models/uploadable_file.rb
> > class UploadableFile
>
> >   ### for use in testing:
>
> >   def initialize(fname, contents)
> >     @fname = fname
> >     @contents = contents
> >   end
>
> >   def original_filename
> >     return @fname
> >   end
>
> >   def read
> >     return @contents
> >   end
>
> >   ### class meths:
>
> >   def self.parse(upfile)
> >     return nil if upfile.blank? or not (upfile.respond_to?
> > ('original_filename')\
> >  and upfile.respond_to?('read'))
>
> >     orig_fname = upfile.original_filename
> >     contents = upfile.read
> >     # parse/process contents ....
> >   end
> > end
>
> > Then just call that class meth in your controller to parse the
> > uploaded file for an example file form element of name "upfile":
>
> >    ### in some controller meth that handles that multipart/form-data
> > form:
> >    ...
> >    parsed_contents = UploadableFile.parse(params[:upfile])
> >    # check results ....
>
> > Jeff
>
> > On Mar 22, 9:37 pm, GoodGets <goodg...@gmail.com> wrote:
>
> > > parsing the file's not the problem, just not sure what to do with it
> > > before or after.  I was thinking about uploading the files using
> > > Paperclip, parsing it, then deleting itfrom the database.  But, that
> > > all seems a little unnecessary, especially if I don't care if they are
> > > even saved.
>
> > > I then thought about grabbing them from the temp directory, but
> > > honestly wasn't sure how to go about doing that.  So before I really
> > > delve into the Tempfile, should I even worry about it in the first
> > > place?  Each user uploaded file will be like 30kb max, and I'll only
> > > be processing a couple hundred a month.  Also, I'm hosted on heroku,
> > > so the s3 transfers (if I do save the file) will be free.  What ya
> > > think?
>
> > > Any advice really is appreciated

-- 
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-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to