Как загрузить изображение методом POST на сервер в wp7 с помощью php webservice? - PullRequest
3 голосов
/ 09 ноября 2011

Я пытаюсь загрузить файл изображения, пока он выбран в PhotoChooser в Windows Phone 7, но он не загружается. Я использую следующий код.

     void UploadFile(string fileName, Stream data)
    {
        UriBuilder ub = new  UriBuilder("http://webservice.php?uid=" + Constants.UserId);

        WebClient webClient = new WebClient();
        webClient.Headers["Content-Type"] = "multipart/form-data; boundary=7794b1e4-2134-41a3-b8ab-ff5aff9710fd";

        webClient.OpenWriteCompleted += (sender, e) =>
        {
            System.Diagnostics.Debug.WriteLine("START");
            PushData(data, e.Result);
            System.Diagnostics.Debug.WriteLine("END");
            e.Result.Close();
            data.Close();
        };
        webClient.WriteStreamClosed += (sender, e) =>
        {
            System.Diagnostics.Debug.WriteLine("WriteStreamClosed");
        };
        webClient.OpenWriteAsync(ub.Uri);
    }

    private void PushData(Stream input, Stream output)
    {
        System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
        Byte[] bytes = encoding.GetBytes("--7794b1e4-2134-41a3-b8ab-ff5aff9710fd\r\n"
            + "Content-Disposition: form-data; name=\"uploadFile\"; filename=\"test.jpg\"\r\n"
            + "Content-Type:Image/jpeg\r\n\r\n");
        output.Write(bytes, 0, bytes.Length);
        int dd = 0;
        byte[] buffer = new byte[4096];
        int bytesRead;
        while ((bytesRead = input.Read(buffer, 0, buffer.Length)) != 0)
        {
            output.Write(buffer, 0, bytesRead);
            dd += bytesRead;

            System.Diagnostics.Debug.WriteLine("WRITE: " + dd);
        }
        bytes = encoding.GetBytes("\r\n--7794b1e4-2134-41a3-b8ab-ff5aff9710fd--\r\n");
        output.Write(bytes, 0, bytes.Length);
    }

Может кто-нибудь сказать мне, что не так в коде выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...