介绍
今天就跟大家聊聊有关怎么在php中通过模拟发布对图片进行上传,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
, 1,读取服务器上的图片,转为二进制传到客户端,客户端用fopen,写入文件重新生成图片存放到客户端org/resouse目录下
, 2,再把org/resouse中的图片处理为宽度100存放到客户端org/w100目录下
, 3,最后一步要怎样重新把它上传到服务器呢?,
前两步已经完成,可以忽略
客户端org/w100/目录下有图片:5 k0ach.jpg,要怎样把这张图片上传到服务器?
<强>,注意:强>客户端不是网页,没有表单之类的界面,是在命令行运行的
客户端gptest.php的部分代码(省略登陆部分的,假设登陆成功,直接为psn_id赋值):,
& lt; ? php $ psn_id =,“1 fbahh", url 美元;=,SERVER_URL 只& # 39;/get_imginfo.php& # 39;;,//SERVER_URL为我自己定义的常量,其值为:http://localhost: 8080/phpClientSer $ ans =, postData_json ($ url,,“psn_id=$ psn_id");//postData_json()和postData()在check.php , print_r (ans);, , if ($ ans[& # 39;计数# 39;],祝辞,0),{, (!,if  file_exists (“org")), {, mkdir才能(“org");, mkdir才能(“;org/resouse/");,//从服务器读取过来的原图片存放路径, mkdir才能(“;org/w100/");,//把上目录中临时存放的图片处理为宽100度后存放的路径, mkdir才能(“;org/temp/");,//出来gif图片是的临时mul }大敌; 美元,foreach (ans (& # 39; pdt_id& # 39;], as k 美元;=祝辞,pdt_id美元),{, img 美元;=,才能“;org/resouse/",只pdt_id 美元;只美元ans (& # 39; img_style& # 39;] [$ k];, , 时间=美元才能url SERVER_URL 只& # 39;/get_stream.php& # 39;;//访问服务器的路径, 时间=美元才能postString 美元ans (& # 39; img_url& # 39;] [$ k];,//传递的参数[服务器上图片的路径), 时间=美元才能stream postData ($ url,“img_url=?只答美元[& # 39;img_url& # 39;] [$ k]);//从服务器读取的图片内容, 时间=美元才能file fopen (img美元,,“w +“),,//打开文件准备写入, ,,写入文件(文件,美元,美元流),,//写入, 文件关闭才能(文件),,//关闭, , 时间=美元才能image_resize new image_resize ();, 美元才能image_resize→法案(img美元,美元pdt_id);//处理图片, , img_u 美元;=,才能“;org/w100/",只pdt_id 美元;只美元ans (& # 39; img_style& # 39;] [$ k);//处理后图片的存放路径, ,,//下才能面的代码是把处理过的图片转为二进制传到服务器,问题就出在这段代码, 时间=美元才能stm file_get_contents ($ img_u);, 时间=美元才能url SERVER_URL 只& # 39;/create_img.php& # 39;;, postString 美元;=,才能“pdt_id=$ pdt_id& img_& img_stm=?只stm;美元, 时间=美元才能move postData ($ url, postString美元),, echo 才能“结果- - - - - - - - - -产生绯闻;,只move 美元;只“\ r \ n",, }大敌; }, 祝辞;
check.php部分代码,
function postData (remote_server美元,,post_string美元),{, ,context 美元;=,阵列(, & # 39;才能http # 39;,=祝辞,阵列(, ,,& # 39;方法# 39;,=祝辞,& # 39;文章# 39;,, ,,& # 39;头# 39;,=祝辞,& # 39;内容类型:,应用程序/x-www-form-urlencoded& # 39;,只 ,,& # 39;\ r \ n # 39;,只& # 39;User-Agent :,吉米\ & # 39;s POST Example β# 39;,只 ,,& # 39;\ r \ n # 39;,只& # 39;内容长度:& # 39;,只strlen (post_string美元),+,8日, ,,& # 39;内容# 39;,=祝辞,post_string美元), ,); ,stream_context 美元;=,stream_context_create(上下文),, ,data 美元;=,file_get_contents (remote_server美元,,假的,,stream_context美元),, ,return 元数据; }, , function postData_json (remote_server美元,美元post_string), {, ,context 美元;=,阵列(, & # 39;才能http # 39;,=祝辞,阵列(, ,,& # 39;方法# 39;,=祝辞,& # 39;文章# 39;,, ,,& # 39;头# 39;,=祝辞,& # 39;内容类型:,应用程序/x-www-form-urlencoded& # 39;,只 ,,& # 39;\ r \ n # 39;,只& # 39;User-Agent :,吉米\ & # 39;s POST Example β# 39;,只 ,,& # 39;\ r \ n # 39;,只& # 39;内容长度:& # 39;,只strlen (post_string美元),+,8日, ,,& # 39;内容# 39;,=祝辞,post_string美元), ,); ,stream_context 美元;=,stream_context_create(上下文),, ,data 美元;=,file_get_contents (remote_server美元,,假的,,stream_context美元),, ,, ,return json_decode ($ data,,真的),, }怎么在php中通过模拟发布对图片进行上传