Windows phone 7 WP7文件上传,带有httpwebrequest和进度指示
我正在使用HttpWebRequest将图像从Windows Phone 7应用程序上载到WebDAV服务器。上传没有问题,一切正常。 现在我想为文件上传添加一个进度条。 我正在使用以下代码将数据写入流:Windows phone 7 WP7文件上传,带有httpwebrequest和进度指示,windows-phone-7,file-upload,httpwebrequest,Windows Phone 7,File Upload,Httpwebrequest,我正在使用HttpWebRequest将图像从Windows Phone 7应用程序上载到WebDAV服务器。上传没有问题,一切正常。 现在我想为文件上传添加一个进度条。 我正在使用以下代码将数据写入流: protected void WriteRequestStream(IAsyncResult result) { Stream stream = (Stream)result.AsyncState; Stream streamResponse
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服务器之前已被缓冲。因此,在上传完成之前,ProgesBar将保持100%的速度
我注意到HttpWebRequest类中没有AllowWriteStreamBuffering属性。是否有任何解决方案可以在WP7中上载带有HttpWebRequest的文件并显示上载进度
谢谢大家! 检查这个例子,谢谢你的回复。我已经检查了示例,示例代码中的服务器似乎被修改为处理URI中的区块信息。在我的情况下,不可能修改服务器。我现在已经尝试上载分块的文件,但这不起作用。我觉得在WindowsPhone7!中使用httpWebRequest上传分块文件是不可能的!?没有SendChunked属性,我不知道如何告诉服务器我正在发送分块数据。在请求头中设置Transfer Encoding=chunked会导致EndGetResponse方法中出现NotSupportedException@WilliamMelani的链接已失效,像这样的koders.com链接对于永久线程来说不是很好的链接。