将图像从php加载到.net应用程序


loading image from php to .net application

我在/public_html/images/restricted中有几个图像使用.htaccess同时,我创建了一个获取图像的php文件。

使用POST更改特定ID 之前的示例

<?php>
$file = '/home/user/public_html/foodimage/ID-856-front.jpg';
header('Content-Type: image/jpeg');
print $file;
?>

我如何创建我的Webrequest来提取从这个php文件请求的图像。

        Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(url)
        request.Proxy = Nothing
        request.Method = "POST"
        Dim postData = postvalues
        Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
        request.ContentType = "application/x-www-form-urlencoded"
        request.ContentLength = byteArray.Length
        Dim dataStream As Stream = request.GetRequestStream()
        dataStream.Write(byteArray, 0, byteArray.Length)
        dataStream.Close()
        Dim response As WebResponse = request.GetResponse()
        dataStream = response.GetResponseStream()
        Dim x As New BitmapImage
        x.StreamSource() = dataStream
        dataStream.Close()
        response.Close()
        Return (x)

请帮忙。我可以在类似的函数中提取json数组和字符串,但似乎无法检索图像。

我不是.NET方面的专家,所以我不能在这方面提供帮助,而是使用:

print $file;

尝试使用readfile()(http://www.php.net/readfile):

<?php>
$file = '/home/user/public_html/foodimage/ID-856-front.jpg';
header('Content-Type: image/jpeg');
readfile($file);
exit;
?>

好吧,在谷歌上搜索了几个小时后,我就可以让它工作了。这是我用来从php中检索图像的代码。

php代码

<?php>
$photoID = $_POST["uID"];
$file = "/home/username/public_html/imagefolder/ID-$photoID-front.jpg";
header('Content-Type: image/jpeg');
readfile($file);
exit;
?>

vb.net

    Public Function getimage(ByVal url As String, ByVal postvalues As String) As BitmapImage
    Dim request As System.Net.WebRequest = System.Net.WebRequest.Create(url)
    request.Proxy = Nothing
    request.Method = "POST"
    Dim postData = postvalues
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
    request.ContentType = "application/x-www-form-urlencoded"
    request.ContentLength = byteArray.Length
    Dim dataStream As Stream = request.GetRequestStream()
    dataStream.Write(byteArray, 0, byteArray.Length)
    dataStream.Close()
    Dim x As New BitmapImage()
    Dim lsResponse As [String] = String.Empty
    Using lxResponse As HttpWebResponse = DirectCast(request.GetResponse(), HttpWebResponse)
        Using reader As New BinaryReader(lxResponse.GetResponseStream())
            Dim lnByte As [Byte]() = reader.ReadBytes(1 * 1024 * 1024 * 10)
            Dim stream As New MemoryStream(lnByte)
            stream.Seek(0, SeekOrigin.Begin)
            x.BeginInit()
            x.StreamSource = stream
            x.EndInit()
        End Using
    End Using
    Return x
End Function