weixin_40054559 2017-08-31 17:16 采纳率: 0%
浏览 1554

c++MFC实现图片文字传输

MFC做,本地读取图片文字发送到服务器端进行替换!post方法!跪求好心人给个完整代码,网上找的一堆错误!

  • 写回答

1条回答 默认 最新

  • 叮咚呛咚呛 2017-09-01 01:34
    关注
    3.文件上传
    #include <afxinet.h>
    int UploadFile(LPCTSTR strURL, //负责接收上传操作的页面的URL
        LPCTSTR strLocalFileName)  //待上传的本地文件路径
    {
        ASSERT(strURL != NULL && strLocalFileName != NULL);
    
        BOOL bResult = FALSE;
        DWORD dwType = 0;
        CString strServer;
        CString strObject;
        INTERNET_PORT wPort = 0;
        DWORD dwFileLength = 0;
        char * pFileBuff = NULL;
    
        CHttpConnection * pHC = NULL;
        CHttpFile * pHF = NULL;
        CInternetSession cis;
    
        bResult = AfxParseURL(strURL, dwType, strServer, strObject, wPort);
        if (!bResult)
            return FALSE;
        CFile file;
        try
        {
            if (!file.Open(strLocalFileName, CFile::shareDenyNone | CFile::modeRead))
                return FALSE;
            dwFileLength = file.GetLength();
            if (dwFileLength <= 0)
                return FALSE;
            pFileBuff = new char[dwFileLength];
            memset(pFileBuff, 0, sizeof(char) * dwFileLength);
            file.Read(pFileBuff, dwFileLength);
    
            const int nTimeOut = 5000;
            cis.SetOption(INTERNET_OPTION_CONNECT_TIMEOUT, nTimeOut); //联接超时设置
            cis.SetOption(INTERNET_OPTION_CONNECT_RETRIES, 1);  //重试1次
            pHC = cis.GetHttpConnection(strServer, wPort);  //取得一个Http联接
    
            pHF = pHC->OpenRequest(CHttpConnection::HTTP_VERB_POST, strObject);
            if (!pHF->SendRequest(NULL, 0, pFileBuff, dwFileLength))
            {
                delete[]pFileBuff;
                pFileBuff = NULL;
                pHF->Close();
                pHC->Close();
                cis.Close();
                return FALSE;
            }
            DWORD dwStateCode = 0;
            pHF->QueryInfoStatusCode(dwStateCode);
    
            if (dwStateCode == HTTP_STATUS_OK)
                bResult = TRUE;
        }
        catch (...)
        {
            AfxMessageBox((CString)"文件上传出现异常");
        }
    
        delete[]pFileBuff;
        pFileBuff = NULL;
        file.Close();
        pHF->Close();
        pHC->Close();
        cis.Close();
        return bResult;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器