用 html file控件上传图片,因为 $_FILES["file"] 是传到当前服务器,想要上传到另外一个服务器需要通过服务器脚本实现。

1.图片上传

引入jquery 和 ajaxfileupload  两个js文件

                   

<input type="button" value="上传icon图片" id="subimg">(146*146)
<input type="file" name="iconfile" id="icon" style="display:none">
<input type="hidden" name="icon" id="iconname" value=""> <script>
$("#subimg").click(function(){ $("#icon").trigger('click');
});
$("#icon").change(function(){
$.ajaxFileUpload({
url:'http://***.**/upload',
fileElementId:'icon',
dataType:'json',
success:function(data,status){
if(data.stat == 1){
$("#iconname").val(data.iconname);
alert(data.str);
}else{
alert(data.str);
} },
error:function(data,status,e){
alert('wrong!');
alert(e);
}
});
});
</script>

2.当前服务器接收图片,将图片保存到当前服务器上。

public function upload()
{
$data = $_FILES['iconfile'];
if(empty($data)){
$result = array('stat'=>-1,str=>'请选择图片');
echo json_encode($result);exit;
}
$file_name = $data['name']; // 文件名
$tmp_name = $data['tmp_name']; // 服务器上临时文件名
$file_size = $data['size']; // 文件大小
$file_type = $data['type']; // 文件类型
$arr = explode('.',$file_name);
$type = $arr[1];
$file_name = 'icon'.time().'.'.$type;
$file_path = '/data/www/bi.feiliu.com/public/icon/'.$file_name; if(move_uploaded_file($tmp_name, $file_path) == true ){
$result = array('stat'=>'1','str'=>'添加图片成功','iconname'=>$file_name);
}else{
$result = array('stat'=>'-2','str'=>'添加图片失败');
}
echo json_encode($result);
exit;
}

3.调用目的服务器的脚本,用来接收图片并保存

file_get_contents($icon_url);

目的服务器脚本

function mkdirs($dir, $mode = 0777){
if (is_dir($dir) || @mkdir($dir, $mode))
return true;
if (!mkdirs(dirname($dir), $mode))
return false;
return @mkdir($dir, $mode);
} $picurl=$_GET["picurl"];
$mubiaoyuming="http://bi.feiliu.com/";
$pic=$picurl; if($picurl=="") die("没有图片地址");
$str= file_get_contents($mubiaoyuming."/".$pic);
//http://bi.feiliu.com/head/tk.png
$rootdir = '/data0/www/html/gonghui/camera360';
//$rootdir=str_replace("\\","/",$rootdir);//转换目录中的dir
preg_match("/^[\S]+[\/]/",$pic,$matchs); $dir="";
if($matchs) $dir=$matchs[0]; mkdirs($rootdir."/".$dir); $h=@fopen($rootdir."/".$pic,"w+");
//echo $rootdir."/".$pic;die;
echo (@fwrite($h,$str))?"dook":"dopass";

最新文章

  1. MVC 3 IIS7.5 网站发布及IIS配置文件问题处理
  2. 4.css度量单位
  3. 关于“undefined reference to”错误
  4. Spring各种注解标签作用详解
  5. Delphi webservice 定义 转
  6. CodeForces - 27E--Number With The Given Amount Of Divisors(反素数)
  7. STM32学习之路-SysTick的应用(时间延迟)
  8. SpringBoot核心注解应用
  9. DataUtils对Connection的获取、释放和关闭的操作学习
  10. Hibernate更新删除数据后,再查询数据依然存在的解决办法
  11. LAMP平台的搭建及应用
  12. python type metaclass
  13. 戴尔游匣5577安装 ubuntu/mint
  14. 微信小程序裁剪图片成圆形
  15. js对字符串进行加密和解密
  16. 怎么设计好移动APP测试用例
  17. win7保护眼睛的颜色设置方法(85,125,205)
  18. wxpython 创建工具栏和菜单栏
  19. Vue.js-----轻量高效的MVVM框架(十一、使用slot分发内容)
  20. 在 Flask 项目中解决 CSRF 攻击

热门文章

  1. 2014.8.25 VS新建项目模板消失解决方法
  2. 利用HADOOP中的jar写一个RPC
  3. javascipt——原型
  4. nand中间出现坏块,无法正常启动内…
  5. 201671010140. 2016-2017-2 《Java程序设计》java学习第八周
  6. Hadoop之HDFS(一)HDFS入门及基本Shell命令操作
  7. 值得一做》关于一道DP+SPFA的题 BZOJ1003 (BZOJ第一页计划) (normal-)
  8. 搭建大数据hadoop完全分布式环境遇到的坑
  9. 关于mysql自增字段问题
  10. solidity错误处理