1

PhotoChooserTask で選択した画像をアップロードしたい。選択自体は正常に機能し、画像を開くことができます。また、すでにBase64(Works)にデコードしています。

Windowsphoneでhttpwebrequestを操作する方法に関する実際の例が見つからないため、次の方法で試しました。

    private void photoChooserTask_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult == TaskResult.OK)
        {

            //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;

            String str = BitmapToByte(MyImage);

            String url = "http://klopper.puppis.uberspace.de/php/app/image.php?image="+ str;

            LoadSiteContent(url);

        }


    }

コードの残りの部分は正常に動作しています。

私が得る: System.IO.FileNotFoundException

str を「test」に変更すると、機能します。

問題は、文字列が長すぎることですか?

4

1 に答える 1

0
 private void task_Completed(object sender, PhotoResult e)
    {
        if (e.TaskResult != TaskResult.OK)
            return;

        const int BLOCK_SIZE = 4096;

        Uri uri = new Uri("http://localhost:4223/File/Upload", UriKind.Absolute);

        WebClient wc = new WebClient();
        wc.AllowReadStreamBuffering = true;
        wc.AllowWriteStreamBuffering = true;

        // what to do when write stream is open
        wc.OpenWriteCompleted += (s, args) =>
        {
            using (BinaryReader br = new BinaryReader(e.ChosenPhoto))
            {
                using (BinaryWriter bw = new BinaryWriter(args.Result))
                {
                    long bCount = 0;
                    long fileSize = e.ChosenPhoto.Length;
                    byte[] bytes = new byte[BLOCK_SIZE];
                    do
                    {
                        bytes = br.ReadBytes(BLOCK_SIZE);
                        bCount += bytes.Length;
                        bw.Write(bytes);
                    } while (bCount < fileSize);
                }
            }
        };

        // what to do when writing is complete
        wc.WriteStreamClosed += (s, args) =>
        {
            MessageBox.Show("Send Complete");
        };

        // Write to the WebClient
        wc.OpenWriteAsync(uri, "POST");
    }

Windows Phone 7 アプリケーションでの投稿画像ファイルへの参照

于 2013-11-05T13:06:49.273 に答える