0

windowsphonen 8アプリからphpページ(ファイルサーバー)に画像をアップロードする方法について、すでにさまざまなチュートリアルを検索しました-何もうまくいかないので、あなたに尋ねています.

これは、ストリームを Base64 に変換する私のコードです

    string PhotoStreamToBase64(Stream PhotoStream)
    {
        MemoryStream memoryStream = new MemoryStream();
        PhotoStream.CopyTo(memoryStream);
        byte[] result = memoryStream.ToArray();

        string base64img = System.Convert.ToBase64String(result);
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < base64img.Length; i += 32766)
        {
            sb.Append(Uri.EscapeDataString(base64img.Substring(i, Math.Min(32766, base64img.Length - i))));
        }

        return sb.ToString();
    }

photoChooserTask を使用してイメージをキャッチします (これは正常に機能しますが、他のメソッドに使用できるストリームを取得できません)。

    private void photoChooserTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {
            MessageBox.Show(e.ChosenPhoto.Length.ToString());

            //Code to display the photo on the page in an image control named myImage.
            System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
            bmp.SetSource(e.ChosenPhoto);
            MyImage.Source = bmp;
        }
    }

画像をアップロードするには、これを試しました:

    public void UploadImageAsync(Stream PhotoStream)
    {
        try
        {
            WebClient w = new WebClient();
            w.Headers["Content-type"] = "application/x-www-form-urlencoded";

            string data = "id=1" +
                    "&_fake_status=200" +
                    "&type=base64" +
                    "&image=" + PhotoStreamToBase64(PhotoStream);

            w.UploadStringAsync(new Uri("http://myurl.de/php/app/changeimg.php", UriKind.Absolute), "POST", data);

        }
        catch (Exception ex)
        {
        }
    }

最後の部分は私のphpファイルです

    function base64_to_image( $imageData, $outputfile ) {
    $ifp = fopen( $outputfile, "wb" );
    fwrite( $ifp, base64_decode( $imageData ) );
    fclose( $ifp );
    return( $outputfile );
    }       

    if (isset($_POST['image'])) {
    base64_to_jpeg($_POST['image'], "test".$_GET['id'].".jpg");
$file = 'people.txt';

     $person = "Win";

    file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
     }
    else
{
    die("no image data found");
$file = 'people.txt';

     $person = "Fail";

    file_put_contents($file, $person, FILE_APPEND | LOCK_EX);
}

私はさまざまなソースからこれらすべてのコード スニペットを入手しましたが、どういうわけかそれが私が見つけることができる最高の "アイデア" だと思いました。誰かが私の問題のサンプルコードを持っていますか? 私は Windowsphone 開発に本当に慣れていないので、その問題について深刻な助けが必要です。

4

1 に答える 1