php+jquery 实现 ajax上传图片到非当前服务器
用 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";
php+jquery 实现 ajax上传图片到非当前服务器的更多相关文章
- jquery 的 ajax 在 非阻塞 时返回 XMLHttpRequest
jquery 的 ajax 在 非阻塞 时返回 是 [object XMLHttpRequest] 对象(firefox 下 alert(对象名) 也可以直接看到对象类型) 返回的内容用 reques ...
- 份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】
package loaderman.provincecity; import java.io.IOException; import java.util.LinkedHashSet; import j ...
- 对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache
虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或 ...
- 第六章 jQuery和ajax应用
ajax是异步JavaScript和xml的简称. 一. ajax补白 优势 不足(不一定是不足) 不需要任何插件(但需要浏览器支持js) XMLHttpRequest对象在不同浏览器下有差异 优秀的 ...
- Jquery实现异步上传图片
利用jQuery的ajax函数就可以实现异步上传图片了.一开始我是想在处理程序中,直接用context.Request.Files来获取页面中的input file,但是不知道为什么一次获取不了.网上 ...
- 触碰jQuery:AJAX异步详解
触碰jQuery:AJAX异步详解 传送门:异步编程系列目录…… 示例源码:触碰jQuery:AJAX异步详解.rar AJAX 全称 Asynchronous JavaScript and XML( ...
- jQuery调用AJAX异步详解[转]
AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和X ...
- 从零开始学习jQuery (六) AJAX快餐
一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案, 即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现A ...
- 触碰jQuery:AJAX异步详解(转)
AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和X ...
随机推荐
- Chrome和IE的xss过滤器分析总结
chrome的xss过滤器叫xssAuditor,类似IE的xssFilter,但是他们有很大的内在区别 chrome xssAuditor工作原理 chrome的xss检测名称为 xssAudito ...
- 如何发布可用于azure的镜像文件
摘要:本篇文章讲述如何将蝉知,禅道和然之发布azure的镜像. azure是微软提供的云服务平台.并且针对中国用户专门开通了www.windowsazure.cn站点.同时还成了微软开放中国公司,推出 ...
- BurpSuite—-Sequencer模块(定序器)
一.简介 Burp Sequencer是一种用于分析数据项的一个样本中的随机性质量的工具.你可以用它来测试应用程序的session tokens(会话tokens)或其他重要数据项的本意是不可预测的, ...
- JAVA 用axis1 调用.NET的web service
1.去官网下载axis的jar包,我下的是1.4版本的 http://axis.apache.org/axis/java/releases.html 2.JAVA 代码: public void my ...
- [iOS]通过xib定义Cell然后关联UICollectionView
先新建一个View的xib,然后删掉自动生成的View,拖进一个UICollectionCell,再新建一个对应的UIView继承UICollectionCell类. OK,接下来该连outlet的就 ...
- solrcloud使用问题记录
Solr Ping query caused exception: undefined field text [java] view plaincopy <span style="fo ...
- Mask_RCNN caffe2
cd DETECTRON/detectron/ python2 tools/infer_simple_ip_camera.py \ --cfg configs/12_2017_baselines ...
- 批量添加数据SqlBulkCopy
using System.Data.SqlClient; class Program { static void Main() { string connectionString = GetConne ...
- Luogu 1606 [USACO07FEB]白银莲花池Lilypad Pond
感觉应当挺简单的,但是弄了好久……菜死了 如果不考虑那些为$1$的点,直接跑个最短路计数就好了,但是我们现在有一些边可以不用付出代价,那么只要在连边的时候先预处理搜一下就好了. 原来的想法是拆点,但是 ...
- Django rest_framework----序列化组件
生成hypermedialink serializer.pclass BookModelSerializers(serializers.ModelSerializer): class Meta: mo ...