C# .net中的HTTP_RAW_POST_DATA等效方法是什么?

4

我希望能够在C#中模仿PHP代码。

我想要捕获从以下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页面加载时,以下是我试图模仿的PHP代码:

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.";
}

任何指针和建议都将不胜感激。谢谢!
2个回答

6
这个对您有用吗?
byte[] data = Request.BinaryRead(Request.TotalBytes);

3

通过访问Request.InputStream,您应该能够获得原始的HTTP POST数据。从流中读取并将其写入文件。

编辑:请使用James的建议Request.BinaryRead。对于写入,您可以使用File.WriteAllBytes(filename, data)。在asp.net中,与$_GET等效的是Request.QueryString


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接