如何在vc中停止正在进行的上传

时间:2013-07-11 05:59:26

标签: c++ winapi visual-c++ file-upload wininet

在我的应用程序中,我们可以将上传文件上传到服务器。为此,我使用WININET。我想在用户点击Stop按钮时停止上传过程。现在,如果用户点击stop按钮,则正在进行的过程不会停止上传。如何拒绝上传文件。

3 个答案:

答案 0 :(得分:3)

如果您使用的是WININET,则需要将文件分成几个较小的块。如果用户按“取消”,则需要设置变量以中止上传。每次小型上传后都必须检查... 可以在此处找到拆分上传到较小ppart的完整示例: http://support.microsoft.com/kb/177188/en-us 您需要下载“hsrex.exe”文件,然后使用WinZip或7-zip打开它并解压缩“BigPost.cpp”文件。我也可以在这里发布代码,如果你想...

答案 1 :(得分:1)

尝试CHttpFile :: EndRequest()函数......

另一个想法是,尝试终止用于上传操作的线程

答案 2 :(得分:0)

首先,您需要在工作线程上执行WinInet操作,以便释放UI以单击“取消”按钮。当用户单击“取消”时,UI线程应关闭WinInet使用的句柄以上载文件块。这会导致WinInet立即中止当前正在进行的任何上传块。要在此时干净地退出工作线程,UI线程应该设置工作线程读取的bool' done'标志,如果设置了,则工作线程退出而不是循环以上载另一个块。