MFC 用post提交文件错误分析。

零隐 2018-02-26 04:26:19
我自己创建了一个文件系统。
用mfc post提交文件,但是总是提交不成功。报

16:15:50 192.168.5.124:49879 上传失败于 20180226161550.wav: 不允许。
16:15:50 192.168.5.124:49879 上传失败 20180226161550.wav
16:15:50 192.168.5.124:49879 请求 POST /uploadfile/


大神 谁能知道错误吗?或者来个可用的代码参考下。
...全文
629 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2018-02-27
  • 打赏
  • 举报
回复
早晚还得学会使用抓包软件比如wireshark辅助调试。
Eleven 2018-02-27
  • 打赏
  • 举报
回复
InternetWriteFile调用失败,GetLastError()返回的错误码是什么?
worldy 2018-02-27
  • 打赏
  • 举报
回复
估计是权限问题
零隐 2018-02-26
  • 打赏
  • 举报
回复

这是请求报。
零隐 2018-02-26
  • 打赏
  • 举报
回复
引用 1 楼 VisualEleven 的回复:
你用抓包工具分别抓个包对比一样,看看差别在哪里?
没用过抓包工具,刚刚看了太多了。 我刚刚分析了代码

if(!InternetWriteFile(hHttpRequest,localJpg.FileBuf,localJpg.nFileLen,&dwNumberOfBytesWritten)) 
这个返回的错误 三个组合http 请求的

string CPost::MakeRequestHeaders(string &strBoundary)    
{    
    string strData;    
        
    strData += _T("Content-Type: multipart/form-data; boundary=");    //二进制文件传送Content-Type类型为: multipart/form-data    
    strData += strBoundary;    
    strData +="\r\n";    
    return strData;    
} 


string CPost::MakePreFileData(string &strBoundary, string &strFileName, int iRecordID)    
{    
	//////////////////////////////////////////////////////////////////////////////////    
	string strData;    

	strData += _T("--");    
	strData += strBoundary;    
	strData += _T("\r\n");    
	strData += _T("Content-Disposition: form-data; name=\"file1\"; filename=\"");  //必备1:Path    
	strData += strFileName;                                             
	strData += _T("\"");    
	strData += _T("\r\n");    
	strData += _T("Content-Type: image/jpeg");                                     //必备2:Type    

	strData += _T("\r\n\r\n");    

	return strData;    
} 


string CPost::MakePostFileData(string &strBoundary)    
{    
    string strData;    
        
    strData = _T("\r\n");       
    strData += _T("--");    
    strData += strBoundary;    
    strData += _T("\r\n");    
    strData += _T("Content-Disposition: form-data; name=\"submitted\"");    
    strData += _T("\r\n\r\n");    
    strData += _T("hello");    
    strData += _T("\r\n");    
    strData += _T("--");    
    strData += strBoundary;    
    strData += _T("--");    
    strData += _T("\r\n");    
    return strData;    
}    
我传的是jpg文件 目录是自己IP下的 /uploadfile/ 这会不会要设置可以允许上传文件的权限?
Eleven 2018-02-26
  • 打赏
  • 举报
回复
你用抓包工具分别抓个包对比一样,看看差别在哪里?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧