QT calls PHP to write the interface, pass the picture file to it, and save it on the server.
Binary files cannot be passed directly, QT uses Base64 to encode and send, PHP decoding is saved as a file.
Note: When PHP receives the data, it replaces the plus sign (+) in the post data with a space, resulting in incomplete data being received, and the inability to restore normally, using the method of replacing all spaces with the + number before PHP decoding.
QT Files:
//qt FileQFile file ("1.jpg"); if(!File.Open (qiodevice::readonly)) {Qdebug ()<<"file open failed."; return; } Qbytearray Data=File.readall (); File.close (); Qnetworkrequest req (Qurl ("http://localhost:88/index.php")); Networkmgr->post (req,"filedata="+data.tobase64 () +"");
PHP Files:
<? PHP $recContent=$_post[' FileData ']; $data=base64_decode(str_replace("", "+", ($recContent))); file_put_contents $data );? >
C + + qt to PHP interface post file stream