2009-11-10 3 views
4

Хотите подражать PHP-коду в C#.C# .net equivilent HTTP_RAW_POST_DATA?

Я хочу, чтобы захватить исходные данные изображения, размещенные из следующего Flash-Actionscript:

function onSaveJPG(e:Event):void{ 
     var myEncoder:JPGEncoder = new JPGEncoder(100); 
     var byteArray:ByteArray = myEncoder.encode(bitmapData); 

     var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream"); 

     var saveJPG:URLRequest = new URLRequest("save.aspx"); 
     saveJPG.requestHeaders.push(header); 
     saveJPG.method = URLRequestMethod.POST; 
     saveJPG.data = byteArray; 

     var urlLoader:URLLoader = new URLLoader(); 
     urlLoader.addEventListener(Event.COMPLETE, sendComplete); 
     urlLoader.load(saveJPG); 

     function sendComplete(event:Event):void{ 
      warn.visible = true; 
      addChild(warn); 
      warn.addEventListener(MouseEvent.MOUSE_DOWN, warnDown); 
      warn.buttonMode = true; 
     } 

    } 

На странице нагрузки Save.aspx.cs страницы. Вот РНР код я пытаюсь имитировать -

if(isset($GLOBALS["HTTP_RAW_POST_DATA"])){ 
    $jpg = $GLOBALS["HTTP_RAW_POST_DATA"]; 
    $img = $_GET["img"]; 
    $filename = "images/poza_". mktime(). ".jpg"; 
    file_put_contents($filename, $jpg); 
} else{ 
    echo "Encoded JPEG information not received."; 
} 

Все указатели и предложение будет оценено. Благодаря !

ответ

6

Возможно, вам понравится эта работа?

byte[] data = Request.BinaryRead(Request.TotalBytes); 
+0

+1, это проще, чем использование InputStream. – Heinzi

+0

thnks .... это сработало :) !!! –

3

Вы должны иметь возможность получать необработанные данные HTTP-сообщений, обращаясь к Request.InputStream. Читайте из потока и запишите его в файл.

EDIT: Используйте предложение Джеймса Request.BinaryRead. Для записи вы можете использовать File.WriteAllBytes(filename, data). Эквивалент $_GET в asp.net равен Request.QueryString.

Смежные вопросы