kristian nissen
kristian nissen

Reputation: 2907

Rails 3 application/octet-stream

I am working on an application where I use paperclip for uploading images, then the image is manipulated in a flash app and returned to my application using application/octet-stream. The problem is that the parameters from flash are not available using params. I have seen examples where something like

File.open(..,..) {|f| f.write(request.body) }

but when I do this, the file is damaged some how.

How can I handle this in rails 3?

Upvotes: 0

Views: 2204

Answers (1)

Arsen7
Arsen7

Reputation: 12820

After you make sure that the request parameters have hit the Rails application, you may want to ensure that there were no parsing problems. Try to add these lines in you controller's action:

def update # (or whatever)
  logger.debug "params: #{params.inspect}"
  # I hope you do not test this using very large files ;)
  logger.debug "request.raw_post: #{request.raw_post.inspect}"
  # ...
end

Maybe the variable names got changed somehow? Maybe something escaped the parameter string one time too much?

Also, you have said that the file into which you want to save the request body is damaged. How exactly?

The request.body object does not need to be String. It may be a StringIO, for example, so you may want to type this:

File.open(..,..) {|f| f.write(request.body.read) }

Upvotes: 2

Related Questions