送信するデータの中身をどの様に指定するかわかってないので,CHttpFile でもう一度やり直し.
MSDN CHttpFile クラスにあるサンプルのコードで,前回と同様にデータが送れることは確認.
content.txt を用意して,あればそれを読込んで送る様に変更.
CString strData = _T(“Some very long data to be POSTed here!”);
{
CString dataFile = _T(“./content3.txt”) ;
if (::File_IsExist(dataFile)) {
strData = ::LoadText(dataFile).c_str() ;
}
}
Content-Type: multipart/form-data; boundary=—-WebKitFormBoundaryHQUnqULNgae5Y5HW
——WebKitFormBoundaryHQUnqULNgae5Y5HW
Content-Disposition: form-data; name=”file_imo”; filename=”up_Cube.imo”
Content-Type: application/octet-stream
v 0 0 -5
v 0 0 0
v 0 5 0
v 0 5 -5
v 5 0 -5
v 5 5 -5
v 5 0 0
v 5 5 0
f 1 2 3 4
f 5 1 4 6
f 7 5 6 8
f 2 7 8 3
f 3 8 6 4
f 2 1 5 7
——WebKitFormBoundaryHQUnqULNgae5Y5HW
Content-Disposition: form-data; name=”file_htm”; filename=”up_Cube.htm”
Content-Type: application/octet-stream
<!DOCTYPE html>
<html lang=”ja” >
<head >
<meta charset=”UTF-8″ />
< script src=”/_lib/js/webgl/threejs/r84/build/three.js”> </script>
< script src=”/_lib/js/webgl/threejs/r84/examples/js/Detector.js”> </script>
< script src=”/_lib/js/webgl/threejs/r84/examples/js/controls/OrbitControls.js”> </script>
< script src=”/_lib/js/webgl/threejs/r84/examples/js/loaders/MTLLoader.js”> </script>
< script src=”/_lib/js/i_lib/threejs/r84/IMOLoader.js”> </script>
< script src=”/_lib/js/i_lib/threejs/r84/c_3js_4.js”> </script>
< script src=”/_lib/js/i_lib/2017.03/filePath.js”> </script>
</head>
<body>
var imoFile=’up_Cube.imo’;
ThreeStart3 (imoFile,5,5,5) ;
</body>
</html>
——WebKitFormBoundaryHQUnqULNgae5Y5HW–
データは送られているが,PHP の $_FILES にうまく設定されていない.
$str = var_export($_FILES,true) ;
ヘッダ部分の指定が間違っていたみたいで,
CString strHead ;
{
CString dataFile = _T(“./content3.txt”) ;
if (::File_IsExist(dataFile)) {
strData = ::LoadText(dataFile).c_str() ;
{
v_tstring strAry = ::String_SplitLine(strData) ;
if (strAry.size() > 0) {
strHead = strAry[0].c_str() ;
strAry.erase(strAry.begin()) ;
strData = ::String_Join_Line(strAry).c_str() ;
}
}
}
}
送信部分も,SendRequestEx から SendRequest に変更.
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, _T(“/…/t_mfc_h/t_mfc_h.php”)) ;
pFile->SendRequest(strHead,(LPVOID)LPCTSTR(strData),strData.GetLength()) ;
pFile->QueryInfoStatusCode(dwStatus) ;
2017/09/04 CHttpFile を利用したアップロード
UpFile.hxx
UpFile.hxx