----------------view-----------------------------------
<form method="post" action="__SELF__">
<input type="hidden" id="logo" size="40" name="logo" />
<li>
<label>Logo</label>
<img id="pre_img" />
<input id="selImg" type="button" value="选择图片" />
</form> ----------------------弹出层------------------------- <iframe style="display:none;" name="ifr"></iframe>
<div id="upload" style="position:absolute;display:none;padding:10px;border:1px solid #CCC;background:#FFF;width:360px;">
<form id="pre_form" target="ifr" method="POST" action="__CONTROLLER__/ajaxUpload" enctype="multipart/form-data">
图片:<input type="file" name="img" /><input type="submit" value="上传" />
<a id="close" href="javascript:void(0);"> [关闭] </a>
</form>
</div> -----------------------JS-------------------------------- <script>
$("#close").click(function(){
$("#upload").hide();
});
$("#selImg").click(function(){
// 获取按钮的位置
var p = $(this).position();
var div = $("#upload");
div.css({
"left":p.left+"px",
"top":p.top+"px",
"display":""
});
});
</script> --------------------------控制器------------------- //注意 Good/Temp目录需要自己手动创建
public function ajaxUpload()
{
// 读取上传图片的配置
$config = C('UPLOAD_CONFIG');
// 设置上传路径
$config['savePath'] = 'Goods/Temp/';
$upload = new \Think\Upload($config);
// 执行上传
$info = $upload->upload();
if(!$info)
die($upload->getError());
// 设置模型原图地址
$url = 'Uploads/'.$info['img']['savepath'] . $info['img']['savename'];
$thumb_url = 'Uploads/'.$info['img']['savepath'] . 'sm_' .$info['img']['savename'];
$image = new \Think\Image();
$image->open($url);
$image->thumb(100, 100)->save($thumb_url);
#设置图片显示
$show_img="shop_tp/".$thumb_url;
// 在子窗口中的执行JS把数据放到父窗口的表单中
$js = '<script>';
$js .=<<<JS
parent.document.getElementById("logo").value='$url';
parent.document.getElementById("pre_img").src='/$show_img';
parent.document.getElementById("upload").style.display="none";
parent.document.getElementById("pre_form").reset();
JS;
$js .= '</script>';
echo $js;
}
}

模拟 Ajax 上传的更多相关文章

  1. 用iFrame模拟Ajax上传文件

    前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题的.但是$.post直接上传图片是不可行的. 后来看到网上的一些解决方案,有现成的ajax上传文件的封装的方法 ...

  2. 基于HTML5的可预览多图片Ajax上传

    一.关于图片上传什么什么的 在XHTML的时代,我们使用HTML file控件上传图片一次只能上传一张.要一次上传多图,做法是借助于flash.例如swfupload.js.可惜,使用复杂的点,比如f ...

  3. atitit.ajax上传文件的实现原理 与设计

    atitit.ajax上传文件的实现原理 与设计 1. 上传文件的三大难题 1 1.1. 本地预览 1 1.2. 无刷新 1 1.3. 进度显示 1 2.  传统的html4  + ajax 是无法直 ...

  4. Django框架 之 Form表单和Ajax上传文件

    Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...

  5. IE8/9 JQuery.Ajax 上传文件无效

    IE8/9 JQuery.Ajax 上传文件有两个限制: 使用 JQuery.Ajax 无法上传文件(因为无法使用 FormData,FormData 是 HTML5 的一个特性,IE8/9 不支持) ...

  6. Discuz模拟批量上传附件发帖

    简介 对于很多用discuz做资源下载站来说,一个个上传附件,发帖是很繁琐的过程.如果需要批量上传附件发帖,就需要去模拟discuz 上传附件的流程. 模拟上传 discuz 附件逻辑 dz附件储存在 ...

  7. asp.net MVC ajax上传文件

    普通上传 view: <body> <form id="form1" method="post" action="@Url.Acti ...

  8. springMVC+jsp+ajax上传文件

    工作中遇到的小问题,做个笔记 实现springMVC + jsp + ajax 上传文件 HTML <body> <form id="myform" method ...

  9. FormData对象实现文件Ajax上传

    后台: import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; imp ...

随机推荐

  1. Java遍历总结:for、for each和迭代器iterator

    一.for,for each和iterator用法和区别: 相同点:   三个都可以用来遍历数组和集合 不同点: 1.形式差别 //for的形式是 ;i<arr.size();i++){...} ...

  2. Python图像处理(8):边缘检測

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 此前已经得到了单个区域植株图像,接下来似乎应该尝试对这些区域进行分类识别.通过外形和叶脉进行植物种 ...

  3. 【Hadoop】HDFS源码解读

    1.open流程 2.get DFS流程: 3.获取block信息流程

  4. window7下面安装pear.pchar--wamp环境

    准备工作: Wamp php版本:5.3.10 1.下载pear.phar 2.设置php路径的path环境变量 开始安装 1.以管理员身份运行cmd 2.进入pear.phar的所在目录 3.命令行 ...

  5. 字符串去重(hashSet)

    public static String deleteRepeat(String strn){          String s=strn;        String[] array = s.sp ...

  6. JSON,字符串,MAP转换

    package com.tree.autotest.testcase.IAuditBillDetailService; import com.alibaba.fastjson.JSON;import ...

  7. CMake 设置Target输出目录和后缀名

    一. SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/../bin) 上面的语句能设置可执行文件的输出目录 在Win + VS环境下,会自动在你所设置 ...

  8. centos 6.5 python2.6.6 zbar 安装

       经过数次折腾,终于搞明白了这个zbar的安装顺序.   1.先安装http://zbar.sourceforge.net/download.html 下的zbar,   2.python 安装z ...

  9. Androidproject师进阶之路 :《Android开发进阶:从小工到专家》上市啦!

    封面 文件夹1 文件夹2 - 当当购买链接 - 京东购买链接 为什么写这本书 写这本书的念头由来已久了. 或许是从我打算写<Android源代码设计模式解析与实战>那时起就萌生了这个念头, ...

  10. 普通用户 crontab 任务不运行

    今天发如今linux下,普通用户的crontab任务不运行.网上搜了好多.好多说要在运行的脚本前面加上例如以下内容 if [ -f ~/.bash_profile ]; then   . ~/.bas ...