Solved

Rails and Flash Filereference - receiving HTTP 422

Posted on 2009-05-06
17
803 Views
Last Modified: 2013-11-13
Trying create a multiple file uploader in flash using RoR. I'm using AS3 scripts I use to send to PHP. Modified it a bit, and created some rails script like below...

My thoughts: It may be the auth token I need to validate, but I tried passing that in POST and no luck.

Anyone know simply how to upload files from Flash Actionscript to Ruby on Rails???
class DataFile < ActiveRecord::Base
 
  def self.save(data, name, directory)
  		path = File.join(directory, name)
  		File.open(path, 'wb') do |file|
  			file.puts data.read
		  end
		  #File.open(path, "wb") { |f| f.write(params[:filedata].read) }
  end
end
 
class UploadController < ApplicationController
	def index	
		data = params[:filedata]
		name = params[:Filename]
		
		directory = "public/data"
		
		@data_file = DataFile.save(data, name, directory)
 
		render :nothing => true
	end
end

Open in new window

0
Comment
Question by:bizzark
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 7
17 Comments
 

Author Comment

by:bizzark
ID: 24358686
...anyone?   Or anyone know how to pass vars from Flash to a Ruby object in Ruby 2.0? I guess I'll try that next..
0
 
LVL 22

Expert Comment

by:rascalpants
ID: 24412798

I am not too sure about the RoR part, but here is an article on how to send it to a PHP script...

http://scoopmedia.be/uploading-files-using-actionscript-30-and-php


I assume, this would be the same with any server-side environment...



rp / ZA
0
 

Author Comment

by:bizzark
ID: 24414585
Yeah thanks.. doesn't do me much good. I've been working with PHP for a while, I'm trying to switch to Rails.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 22

Expert Comment

by:rascalpants
ID: 24414689

"Anyone know simply how to upload files from Flash Actionscript to Ruby on Rails???"


I gave you the flash part, because that is my responsibility...  if you need help only with the Rails code, and your actionscript is working perfectly, then I would have a Mod post this question in the proper area...


And since your question was worded in a way that make it sound like you believe you can use Flash to do system uploads, I wanted to give you that information...  


rp / ZA
0
 

Author Comment

by:bizzark
ID: 24414881
I had the AS part, like I said above.. I've been using a Flash upload I made for PHP for a while, but I just need help sending it to Rails.
0
 
LVL 22

Expert Comment

by:rascalpants
ID: 24414956

the question was just added to the wrong area then...  if you want, I can have it removed from the AS area.

rp / ZA
0
 

Author Comment

by:bizzark
ID: 24414999
Sure if you think so. But it is an AS question also. I want to know specifically what is needed to communicate with Ruby in AS (if there is anything different)..
0
 
LVL 22

Expert Comment

by:rascalpants
ID: 24415070

I believe I said it above... you communicate with all server-side code the same way...  it is the method that might change...

like Flash Remoting VS Web Services VS sending a QueryString.  it is all the same, and if it is working for PHP, then it is most likely your RoR code that is the issue.

Also, since you have not posted any Actionscript, there there is no way for a Flash person to help you with the Flash part  :)


rp / ZA

0
 

Author Comment

by:bizzark
ID: 24415082
Alright.. well another thing was I wasn't sure if I needed to pass Auth codes from Rails into flash for it to work too.
0
 
LVL 22

Expert Comment

by:rascalpants
ID: 24415154

Since I have never worked with RoR, I don't know the specifics to what is needed as a call...

if you are needing to pass parameters in your call to the server, then that is simple enough...


what version of AS are you using?   post your code that does this part...


rp / ZA
0
 

Accepted Solution

by:
bizzark earned 0 total points
ID: 24418392
Hey, I figured it out! Kept messing with it. I turned off the authenticity token using:

skip_before_filter :verify_authenticity_token, :only => 'upload_action'

Then I looked in the Shell while I performed actions through html (which I got working), and Flash and saw that the variables had different names, so I had to change that

=)

0
 
LVL 22

Expert Comment

by:rascalpants
ID: 24421871
so there was nothing in the Flash that needed updating?


rp / ZA
0
 

Author Comment

by:bizzark
ID: 24424167
No, but I needed to know what Flash sends its file vars as.. it kinda was, but yeah not really.
0
 
LVL 22

Expert Comment

by:rascalpants
ID: 24424217
lol...  then I guess that should have been your question...  and I would have said, that depends on what method you use to connect to the server  ;)


rp / ZA

0
 

Author Comment

by:bizzark
ID: 24434880
Thanks. my question for the most part is answered. The only dilemma I'm facing now is how to actually use the authenticity_code and pass it to Rails. I can receive it in Flash, but I'm not able to get rails to accept it.
0

Featured Post

The Ultimate Checklist to Optimize Your Website

Websites are getting bigger and complicated by the day. Video, images, custom fonts are all great for showcasing your product/service. But the price to pay in terms of reduced page load times and ultimately, decreased sales, can lead to some difficult decisions about what to cut.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article will show, step by step, how to integrate R code into a R Sweave document
When we want to run, execute or repeat a statement multiple times, a loop is necessary. This article covers the two types of loops in Python: the while loop and the for loop.
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
The viewer will learn how to pass data into a function in C++. This is one step further in using functions. Instead of only printing text onto the console, the function will be able to perform calculations with argumentents given by the user.

728 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question