ajaxfileUpload ajax 上传图片使用
前台html:
<div class="b-mg15 img-text" room_id="<?= $items['id'] ?>">
<a class="modal-get">
<img <?php if ($items['room_image']) {
$url = Url::to('@web' . '/' . $items['room_image']);
echo 'src' . '=' . $url;
} ?> id="room_image">
</a>
<div class="pull-txt upload_image"
room_id="<?= $items['id'] ?>" <?php if ($items['room_image']) echo "style=\"display: none\"" ?>>
<div class="b-mg15 t-mg60">
<span class="glyphicon glyphicon-user f50">
</span>
</div>
<a class="">
点击上传会议室图片
</a>
</div>
js代码:
$(".img-text").click(function () {
$("#fileToUpload").click();
$("#fileToUpload").attr('room_id', $(this).attr('room_id'));
});
//选择文件之后执行上传
$('#fileToUpload').on('change', function () {
$.ajaxFileUpload({
url: "<?=Url::toRoute('ajax-upload')?>",
secureuri: false,
fileElementId: 'fileToUpload',//file标签的id
dataType: 'json',//返回数据的类型
data: {_csrf: "<?=Yii::$app->request->getCsrfToken()?>", room_id: $(this).attr('room_id')},//一同上传的数据
success: function (data) {
//把图片替换
$("#room_image").attr('src', data.result);
window.location.reload();
},
error: function (data, status, e) {
alert(e);
}
});
});
后台 php 代码:
/**
* ajax 上传图片
* @return string
*/
public function actionAjaxUpload()
{
return json_encode(MeetRoomService::AjaxUploadImage());
}
/**
* ajax 上传图片
* @return string
*/
public static function AjaxUploadImage()
{
$returnData = [];
$company_id = Yii::$app->company->getId();
$room_id = Yii::$app->request->post('room_id','');
$room = MeetRooms::find()->where(['id'=>$room_id])->one();
$typeArr = array("jpg", "png", "gif");//允许上传文件格式
$path = 'meetRoomImg/' . $company_id.'/';
$dirPath = 'meetRoomImg';
if(!file_exists($dirPath))
{
mkdir($dirPath, 0777);
chmod($dirPath, 0777);
}
if (!file_exists($path)) { mkdir($path, 0777);
chmod($path, 0777);
}
if (isset($_POST)) {
$name = $_FILES['upfile']['name'];
$size = $_FILES['upfile']['size'];
$name_tmp = $_FILES['upfile']['tmp_name'];
if (empty($name)) {
$returnData['error'] = '您还未选择图片';
$returnData['code'] = 400;
return $returnData;
}
$type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
if (!in_array($type, $typeArr)) {
$returnData['error'] = '请上传jpg,png或gif类型的图片!';
$returnData['code'] = 400;
return $returnData;
}
if ($size > (5000 * 1024)) {
$returnData['error'] = '图片大小已超过5000KB';
$returnData['code'] = 400;
return $returnData;
}
$yCode = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J');
$orderSn = $yCode[intval(date('Y')) - 2011] . strtoupper(dechex(date('m'))) . date('d') . substr(time(), -5) . substr(microtime(), 2, 5) . sprintf('%02d', rand(0, 99));
$pic_url = $path . '/' . date('Y-m-d') . $orderSn . '.' .$type;
$pic_name = date('Y-m-d') . $orderSn . '.' .$type;
if (move_uploaded_file($name_tmp, $pic_url)) { //临时文件转移到目标文件夹
$room->room_image = $pic_url;
$room->save(false);
$returnData['error'] = '0';
$returnData['result'] = $pic_url;
$returnData['code'] = 200;
} else {
$returnData['error'] = '上传有误,清检查服务器配置!';
$returnData['code'] = 400;
}
return $returnData;
}
}
注意问题:
上传成功之后没有执行回调函数。
打开ajaxfileupload.js拉到底下找到
[javascript] view plain copy
if ( type == "json" ) {
eval( "data = " + data );
}
改成:
[javascript] view plain copy
if ( type == "json" ) {
data = data.replace("<pre>","").replace("</pre>","");
//data = eval("("+data.replace("<pre>","").replace("</pre>","")+")");
链接:http://pan.baidu.com/s/1c2HWlRa 密码:ofb0
ajaxfileUpload ajax 上传图片使用的更多相关文章
- ajax上传图片
选择文件后 ajax上传图片到后台,后台执行保存操作,返回上传的图片路径,显示到页面 需要引入ajaxfileupload.js js代码 <script type="text/jav ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- 使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器
使用ajax上传图片,支持图片即时浏览,支持js图片压缩后上传给服务器 ajax上传主要使用了 var reader = new FileReader() 此方法 js图片压缩主要是利用canvas进 ...
- Ajax上传图片以及上传之前先预览
手头上有几个小项目用到了easyUI,一开始决定使用easyUI就注定了项目整体上前后端分离,基本上所有的请求都采用Ajax来完成.在文件上传的时候用到了Ajax上传文件,以及图片在上传之前的预览效果 ...
- asp.net core 通过ajax上传图片及wangEditor图片上传
asp.net core 通过ajax上传图片 .net core前端代码,因为是通过ajax调用,首先要保证ajax能调用后台代码,具体参见上一篇.net core 使用ajax调用后台代码. 前端 ...
- vuejs使用FormData对象,ajax上传图片文件
我相信很多使用vuejs的朋友,都有采用ajax上传图片的需求,因为前后端分离后,我们希望都能用ajax来解决数据问题,传统的表单提交会导致提交成功后页面跳转,而使用ajax能够无刷新上传图片等文件. ...
- php form表单ajax上传图片方法
form表单ajax上传图片方法 先引用jquery.form.js 前台代码<pre><form id="form1"> <input id=&qu ...
- 使用ajax上传图片,并且使用canvas实现出上传进度效果
前端代码: <%@ page contentType="text/html;charset=UTF-8" language="java" %> &l ...
- 十六、ajax上传图片 mvc
一.ajax上传图片 mvc 前台html <img id="uploadimg1" class="uploadimg" src="~/ ...
随机推荐
- U当家U盘启动盘制作教程
U当家U盘启动盘制作工具制作u盘系统安装盘支持老机器.新机器启动以及制作,U当家内置强大的U盘一键重装系统工具支持传统和GPT安装,支持原版操作系统和GHOST操作系统安装(ISO/GHO/WIM), ...
- 关于c++字符串的while(*temp++)
首先,上一段代码 static bool reverse_str(const char *str) { const char *temp=str; while(*temp++); temp-=; // ...
- Oracle客户端PL_SQL的安装
Oracle数据库的操作大多还是在客户端完成的,因此在众多的客户端软件中我选择了PL_SQL,一下谈谈PL_SQL的基本安装和操作,以及在操作中碰到的一些问题: 1. 首先下载PL_SQL客户端软件, ...
- codeforces 391C3 - The Tournament
在第8组数据上WA了一天,后来才发现问题: #include<iostream> #include<cstdio> #include<cstring> #inclu ...
- PHP unlink() 函数
定义和用法 unlink() 函数删除文件. 若成功,则返回 true,失败则返回 false. 语法 unlink(filename,context) 参数 描述 filename 必需.规定要删除 ...
- Eclipse导入git上的maven web项目 部署
1 Eclipse中导入Git的maven项目 方法1: (1)首先当然是拉代码. 在Eclipse里面有个Git Repositories Exploring.就是Git仓库,clone a git ...
- 近期会放出tlplayer for android的更新版本
tlplayer for android的一次重大更新在近期将会放出,自从去年初的时候放出tlplayer android版本后,一直都没有更新tlplayer,而tlplayer for windo ...
- php加速缓存Xcache的安装与配置
安装环境:centos 6.5 32bit php5.5.7 nginx1.6.0 [root@localhost opt]# wget http://xcache.lighttpd.net/pub ...
- apache开源项目--Lens
Lens 提供了一个统一数据分析接口.通过提供一个跨多个数据存储的单一视图来实现数据分析任务切分,同时优化了执行的环境.无缝的集成 Hadoop 实现类似传统数据仓库的功能. 该项目主要特性: 简单元 ...
- apache开源项目--nutch
Nutch 是一个开源Java 实现的搜索引擎.它提供了我们运行自己的搜索引擎所需的全部工具.包括全文搜索和Web爬虫. Nutch的创始人是Doug Cutting,他同时也是Lucene.Hado ...