如何从Flash AS3文件中读取jpg bytearray

时间:2012-10-29 16:18:56

标签: ruby-on-rails-3 actionscript-3

我正在尝试将图像从Flash AS3保存到我的服务器作为jpg文件。我找到了一些PHP代码来做这件事,但我想在Ruby中做到这一点。我不太确定如何将以下代码转换为Ruby。它主要是我不知道如何转换的$GLOBALS["HTTP_RAW_POST_DATA"]部分。

<?php

   if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {

      // get bytearray $im = $GLOBALS["HTTP_RAW_POST_DATA"];

      // save image $f = fopen($_GET['name'], 'wb'); fwrite($f, $jpg); fclose($f);

   } else echo 'An error occured.';

?>

源:

http://designreviver.com/tutorials/actionscript-3-jpeg-encoder-revealed-saving-images-from-flash/

我尝试执行以下操作,但生成的图像文件无法打开

temp_file = Tempfile.new(['temp', '.jpg'], :encoding => 'ascii-8bit')
temp_file.write(request.raw_post)
temp_file.close

修改

图片数据位于request.raw_post

EDIT2

对于正在发送的图像,以下是在AS3中创建标题的方式

var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var saveJPG:URLRequest = new URLRequest("http://127.0.0.1:3000/save_image.xml");
saveJPG.requestHeaders.push(header);

saveJPG.method = URLRequestMethod.POST;

1 个答案:

答案 0 :(得分:1)

$GLOBALS["HTTP_RAW_POST_DATA"] 

可以从

中获取
request.env["HTTP_RAW_POST_DATA"]

并将其保存为https://stackoverflow.com/a/2571575/643500

修改

request.body中的图像数据不是吗?

我需要查看图像的发送方式。你有Content-Type的标题吗?