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

C++ 如何在vc中停止正在进行的上传,c++,winapi,visual-c++,file-upload,wininet,C++,Winapi,Visual C++,File Upload,Wininet,在我的应用程序中,我们可以将文件上载到服务器。为此,我使用WININET。当用户点击stop按钮时,我想停止上传过程。现在,如果用户单击stop按钮,正在进行的过程将不会停止上传。我怎样才能拒绝上传文件。如果您使用的是WININET,则需要将文件分为几个较小的块发布。如果用户按下“取消”,则需要设置一个变量以中止上载。这必须在每次小上传后检查。。。 以下是将上传拆分为较小PPART的完整示例: 您需要下载“hsrex.exe”文件,然后使用WinZip或7-zip打开它并解压缩“BigPost.

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

如果您使用的是WININET,则需要将文件分为几个较小的块发布。如果用户按下“取消”,则需要设置一个变量以中止上载。这必须在每次小上传后检查。。。 以下是将上传拆分为较小PPART的完整示例:
您需要下载“hsrex.exe”文件,然后使用WinZip或7-zip打开它并解压缩“BigPost.cpp”文件。另外,如果您需要,我可以在这里发布代码…

如果您使用的是WININET,则需要将文件分为几个较小的块发布。如果用户按下“取消”,则需要设置一个变量以中止上载。这必须在每次小上传后检查。。。 以下是将上传拆分为较小PPART的完整示例: 您需要下载“hsrex.exe”文件,然后使用WinZip或7-zip打开它并解压缩“BigPost.cpp”文件。如果您需要,我也可以在这里发布代码…

试试CHttpFile::EndRequest()函数

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

尝试CHttpFile::EndRequest()函数


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

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

您需要向我们展示一些代码。你在调用什么函数?它有非同步模式吗?另外,在部分上传的情况下会发生什么?服务器是否知道忽略该文件是无效的?您需要编写处理删除部分文件的代码吗?您需要向我们展示一些代码。你在调用什么函数?它有非同步模式吗?另外,在部分上传的情况下会发生什么?服务器是否知道忽略该文件是无效的?是否需要编写处理删除部分文件的代码?