AJAX异步上传,用第三方的组件实现,首先下载一个jQuery 的Ajax文件上传的组件,下载地址为:http://www.phpletter.com/,下载完毕解压找到ajaxfilemanagerv1.1\ajaxfilemanager\jscripts中的ajaxfileupload.js。
下面是本人YII项目中的测试例子
【controllers】
public function actionToolsUpload() {
$this->render("toolsUpload", array("promptData" => ""));
}
function actionUpload() {
if (!empty($_FILES['img']['tmp_name'])) {
//echo json_encode(array('file_infor' => dirname(__FILE__)));exit;
//$dirs = dirname(__FILE__);
/* 设定上传目录 */
$uploads_dir = getcwd() . '\img\uploads';
$uploads_dir = str_replace("\\","/",$uploads_dir);
// chdir($uploads_dir);//转换新地址为当前目录,测试完关闭,不然无法正常上传
// getcwd() //打印出新目录的绝对地址
/* 检测上传目录是否存在 */
if (!is_dir($uploads_dir) || !is_writeable($uploads_dir)) {
if (!mkdir($uploads_dir, 0777)) {
echo json_encode(array('file_infor' => "mkdir error"));
exit;
}
}
/* 设置允许上传文件的类型 */
$allow_type = array("image/jpg", "image/jpeg", "image/png", "image/pjpeg", "image/gif", "image/bmp", "image/x-png");
$get_img_type = $_FILES['img']['type'];
if (!in_array($get_img_type, $allow_type)) {
echo json_encode(array('file_infor' => "图片格式不对,请重新上传!"));
exit;
}
/* 设置文件名为"日期_文件名" */
date_default_timezone_set('PRC');
$newName = date("YmdHis") . "_" . $_FILES['img']['name'];
$path = $uploads_dir . '/' . $newName;
/* 移动上传文件到指定文件夹 */
$state = move_uploaded_file($_FILES['img']['tmp_name'], $path);
$imgsrc = 'img/uploads/' . $newName;
if ($state) {
$message = "文件上传成功!";
$message .= "文件名:" . $newName . "";
$message .= "大小:" . ( round($_FILES['img']['size'] / 1024, 2) ) . " KB";
} else {
/* 处理错误信息 */
switch ($_FILES['img']['error']) {
case 1 : $message = "上传文件大小超出 php.ini:upload_max_filesize 限制";
case 2 : $message = "上传文件大小超出 MAX_FILE_SIZE 限制";
case 3 : $message = "文件仅被部分上传";
case 4 : $message = "没有文件被上传";
case 5 : $message = "找不到临时文件夹";
case 6 : $message = "文件写入失败";
}
}
echo json_encode(array('file_infor' => $message, 'imgsrc' => $imgsrc));
exit;
} else {
echo json_encode(array('file_infor' => 'false'));
}
}
【views】
1、上传页
<div class="control-group">
<label class="control-label" for="">图片:</label>
<div class="controls">
<div style="float: left;">
<input type="text" class="input-small" id="editModalTextEditUpfile" style="height: 20px"></div>
<div style="float: left;">
<iframe scrolling="no" src="<?php echo $this->createUrl('/toolsManagement/toolsUpload'); ?>" name="uploadIframe" style="width:200px; height:32px; padding: 0; border: 0px;"></iframe></div>
</div>
</div>
2、子框架
<html lang="en">
<head>
<meta charset="utf-8">
<script type="text/javascript" src="/bms/js/tools/jquery.js"></script>
<script type="text/javascript" src="/bms/js/tools/ajaxfileupload.js"></script>
<script type="text/javascript">
function ajaxFileUpload()
{
$.ajaxFileUpload
(
{
url: '/bms/toolsManagement/upload',
secureuri: false,
fileElementId: 'img',
dataType: 'json',
success: function(data)
{
alert(data.file_infor);
// console.log(data.file_infor); window.parent.document.getElementById('editModalTextEditUpfile').value=data.imgsrc;
}
}
);
return false;
}
</script>
</head>
<body style="margin-top: 0px; padding: 0px">
<input id="img" type="file" size="45" name="img" style="width:65px;height:30px;">
<input type="button" onclick="return ajaxFileUpload();" value="上传" style="width:45px;height:30px;">
</body>
</html>
相关推荐
主要介绍了Yii+upload实现AJAX上传图片的方法,实例分析了Yii结合upload插件实现ajax上传的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
使用Yii搭建工程,实现了用户注册登陆,图片上传,并使用ajax实现删除操作,使用Gii生成modules并实现模块编程,内含完整代码及工程使用操作以及sql文件
主要介绍了Yii2实现ajax上传图片插件用法,结合实例形式分析了Yii上传图片插件的具体使用方法,需要的朋友可以参考下
yii ajax demo yii ajax demo
yii ajax 原理 本文档为您详细解释它是如何工作的.
yii2 console 集成swoole 执行异步任务,例如注册邮件,发送短信 使用方法:http://blog.csdn.net/nextvary/article/details/79136058
Ajax-yii2-ajax-sort.zip,yii2可排序列表视图ajax拖放,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况...
yii2-upload-behavior, ActiveRecord的Yii2文件/图像上传行为 Yii2文件/图像上传行为这个包是两种类似行为的集合。 第一个允许你将上传的文件保留为。 第二个允许你为上传的图片生成缩略图。 可以为不同的属性多次...
yii2-ajaxcrud, 用于yii2的单一页面Ajax管理的Gii模板 yii2-ajaxcrud 用于yii2的单一页面Ajax管理的Gii模板 特性使用Ajax创建。读取。更新。删除页面批量删除 suportPjax小部件 suport导出函数( pdf,html,文本,cs
yii2 图片上传扩展插件
本文实例讲述了Yii使用ajax验证显示错误messagebox的解决方法。分享给大家供大家参考。具体方法如下: yii 自带了ajax 表单验证 这个可能有些朋友不知道了,但我今天在使用yii 自带的ajax 表单验证 时碰到一些问题,...
yii2框架实现验证码的添加以及验证
YII PHP框架,YII PHP framework 文件大小945 文档类型 CHM
首先撇开modal不谈,我们就yii2 ActiveForm如何以Ajax的方式提交表单做一个简单的说明,这也是我们今天主题的重点,modal确实没啥好说了。后面若是有我再把话改回来。 yii2中,ActiveForm默认做了客户端验证,但是...
Ajax-yii2-ajaxform.zip,通过ajax提交activeform,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不重新加载网页的情况下更改...
本文实例讲述了yii使用activeFileField控件实现上传文件与图片的方法。分享给大家供大家参考,具体如下: yii框架提供了activeFileField控件来完成上传文件(当然也包括了上传图片)的操作,下面介绍yii的...
Ajax-yii2-ajax-submit-button.zip,yii 1为yii 2提供的旧的好ajax提交按钮,ajax代表异步javascript和xml。它是多种web技术的集合,包括html、css、json、xml和javascript。它用于创建动态网页,其中网页的小部分在不...
主要介绍了Yii结合CKEditor实现图片上传功能,Yii是大名鼎鼎的PHP开发框架,CKEditor则是大名鼎鼎的所见即所得编辑器,需要的朋友可以参考下