使用httpwebrequest和进度指示上传WP7文件

时间:2012-02-11 00:57:23

标签: windows-phone-7 file-upload httpwebrequest

我正在使用HttpWebRequest将图像从Windows Phone 7应用程序上传到WebDAV服务器。上传没有问题,一切正常。 现在我想为文件上传添加进度条。 我正在使用此代码将数据写入流:

    protected void WriteRequestStream(IAsyncResult result)
    {

        Stream stream = (Stream)result.AsyncState;
        Stream streamResponse = httpWebRequest.EndGetRequestStream(result);

        byte[] content = new byte[4096];
        long totalBytesRead = 0;
        int bytesRead = 0;
        do
        {
            bytesRead = stream.Read(content, 0, content.Length);
            totalBytesRead += bytesRead;
            streamResponse.Write(content, 0, bytesRead);
            streamResponse.Flush();

            if (progressCallback != null)
            {
                float value = (float)totalBytesRead / stream.Length * 100;
                progressCallback(value);
            }
        } while (bytesRead > 0);
        streamResponse.Close();


        httpWebRequest.BeginGetResponse(new AsyncCallback(requestCallback), null);
    }

我在streamResponse对象中写入的数据似乎在发送到WebDAV服务器之前被缓冲。在上传完成之前,progessbar就是快速且100%。

我注意到HttpWebRequest类中没有AllowWriteStreamBuffering属性。有什么解决方案可以在WP7中使用HttpWebRequest上传文件并显示上传进度吗?

谢谢!

0 个答案:

没有答案