c++需要实现php端的:
bin2hex
函数,php通过这种类型的字符串调用:pack
转换成php能识别的2进制数据。c++需要做的是实现一个bin2hex,其实只是把c++读取的2进制数据当成byte数组,把每一位转换成16进制字符串就可以了。qt中使用sprintf无法限制2位长度,因此sprintf之后判断长度为8则截取最后3个字符串,包含了/0终止符
qstring bin2hex(char* data1,int len){ qstring s ; qstring r ; for (intx=0;xx++) { s.sprintf(%02x\0,data1[x]); if(s.length()>2) { s=s.mid(6,8); } r.append(s); } return r;}qvariant qmlclass::readimg(qstring file){ qfile mfile(file); if(!mfile.open(qiodevice::readonly) ) { qdebug()文件不存在; return; } qdebug()文件存在; qbytearray ar = mfile.readall(); char * adr =ar.data(); qstring m= bin2hex(adr,ar.size()); returnm;}
functionuploadimg() {var x = new xmlhttprequest(); x.onreadystatechange =function() {if(x.readystate == 4) { if(x.status == 200) { console.log(the server replied with: + x.responsetext); txt.text = x.responsetext; } } }; var xxx =newobject; var d=myapp.readimg(:/1.jpg); console.log(typeof d) x.open(post,http://localhost/mycode/test/reg.php,true); console.log(d) //post请求要自己设置请求头 x.setrequestheader(content-type,application/x-www-form-urlencoded); x.send(d); }
').addclass('pre-numbering').hide(); $(this).addclass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadein(1700); }); }); 以上就介绍了 php入门5 c++和php二进制传输,包括了方面的内容,希望对php教程有兴趣的朋友有所帮助。