`
Lamp兄弟
  • 浏览: 16987 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Ajaxupload

 
阅读更多

ajax+php 实现文件上传

用到的库文件ajaxfileupload.js在附件中下载。

function ajaxFileUpload(){
$.ajaxFileUpload
	(
		{
			url:'xxxx.php',
			secureuri:false,
			fileElementId:'fileToUpload',
			dataType: 'json',
			beforeSend:function()
			{
				$("#uploadloading").show();
			},
			success: function (data, status)
			{
				if(typeof(data.error) != 'undefined')
				{
					if(data.error == '1' )
					{
						alert(data.message);
					}else
					{
						//成功回调...
					}
				}
			},
			error: function (data, status, e)
			{
				alert(e);
			}
		}
	)
	return false;
}

 

<input type="file" name="imgFile" id="fileToUpload">
<button id="buttonUpload" onclick="return ajaxFileUpload();" type="button">上传</button>
<img src="loading.gif" id="uploadloading" style="display:none" />

 

function upload($is_rename=false,$path='version_package'){
				set_time_limit(0);
			 $php_path = Doo::conf()->SITE_PATH.'global/upload/';
			 $php_url = '/global/upload/';
			//文件保存目录路径
			 $save_path = $php_path . $path.'/';
			//文件保存目录URL
			$save_url = $php_url . $path.'/';
			//定义允许上传的文件扩展名
			$ext_arr = array(
				'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'),
				'flash' => array('swf', 'flv'),
				'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),
				'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pptx'),
			);
			//最大文件大小
			$max_size = 500000000;

			$save_path = realpath($save_path) . '/';

			//PHP上传失败
			if (!empty($_FILES['imgFile']['error'])) {
				switch($_FILES['imgFile']['error']){
					case '1':
						$error = '超过php.ini允许的大小。';
						break;
					case '2':
						$error = '超过表单允许的大小。';
						break;
					case '3':
						$error = '图片只有部分被上传。';
						break;
					case '4':
						$error = '请选择文件。';
						break;
					case '6':
						$error = '找不到临时目录。';
						break;
					case '7':
						$error = '写文件到硬盘出错。';
						break;
					case '8':
						$error = 'File upload stopped by extension。';
						break;
					case '999':
					default:
						$error = '未知错误。';
				}
				$this->alert($error);
			}
			//有上传文件时
			if (empty($_FILES) === false) {
				//原文件名
				$file_name = $_FILES['imgFile']['name'];
				//服务器上临时文件名
				$tmp_name = $_FILES['imgFile']['tmp_name'];
				//文件大小
				$file_size = $_FILES['imgFile']['size'];
				//检查文件名
				if (!$file_name) {
					alert("请选择文件。");
				}
				//检查目录
				if (@is_dir($save_path) === false) {
					alert("上传目录不存在。");
				}
				//检查目录写权限
				if (@is_writable($save_path) === false) {
					alert("上传目录没有写权限。");
				}
				//检查是否已上传
				if (@is_uploaded_file($tmp_name) === false) {
					alert("上传失败。");
				}
				//检查文件大小
				if ($file_size > $max_size) {
					alert("上传文件大小超过限制。");
				}
				//检查目录名
				$dir_name = empty($_GET['dir']) ? 'file' : trim($_GET['dir']);
				if (empty($ext_arr[$dir_name])) {
					alert("目录名不正确。");
				}
				//获得文件扩展名
				$temp_arr = explode(".", $file_name);
				$file_ext = array_pop($temp_arr);
				$file_ext = trim($file_ext);
				$file_ext = strtolower($file_ext);
				//检查扩展名
				//if (in_array($file_ext, $ext_arr[$dir_name]) === false) {
				//	alert("上传文件扩展名是不允许的扩展名。\n只允许" . implode(",", $ext_arr[$dir_name]) . "格式。");
				//}
				//创建文件夹
				if ($dir_name !== '') {
					$save_path .= $dir_name . "/";
					$save_url .= $dir_name . "/";
					if (!file_exists($save_path)) {
						mkdir($save_path);
					}
				}
				$ymd = date("Ymd");
				$save_path .= $ymd . "/";
				$save_url .= $ymd . "/";
				if (!file_exists($save_path)) {
					mkdir($save_path);
				}
				//新文件名
				$new_file_name = $file_name;//date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext;
				if($is_rename==true){
					$new_file_name=date("YmdHis") . '_' . rand(10000, 99999) . '.' . $file_ext;
				}
				//移动文件
				$file_path = $save_path . $new_file_name;

				if (move_uploaded_file($tmp_name, $file_path) === false) {
					alert("上传文件失败。");
				}
				@chmod($file_path, 0644);
				$file_url = $save_url . $new_file_name;

				header('Content-type: text/html; charset=UTF-8');
				//$this->toJSON(array('error' => 0, 'url' => $file_url),true);
				echo json_encode(array('error' => 0, 'url' => $file_url,'size'=>$file_size,'date'=>date("Y-m-d H:i:s")));
				exit;
			}
				
				
		}
		function alert($msg) {
			header('Content-type: text/html; charset=UTF-8');
			//$this->toJSON(array('error' => 1, 'message' => $msg),true);
			echo json_encode(array('error' => 1, 'message' => $msg));
			exit;
		}

 

分享到:
评论

相关推荐

    ajaxupload.js

    new AjaxUpload(button, { action: 'servlet/import', name: 'newFileName',//更改上传的文件名 data : { 'key1' : "7月份", 'key2' : "8月份", 'key3' : "9月份" }, onSubmit : function...

    ajaxUpload.

    ajaxUpload.ajaxUpload.ajaxUpload.

    ajaxupload华丽的图片上传

    利用ajaxupload组件实现的图片上传 1、在部署该工程时,要在tomcat/webapps/对应的工程下建upload/good目录; 2、在该工程中,点击一次上传图片按钮,就执行一次后台操作,然后将图片的路径保存在一个input的隐藏域...

    ajaxupload.3.6.js

    ajaxupload.3.6.js 上传插件

    Jquery AjaxUpload实现文件上传功能代码

    随着WEB技术的发展,用户体验成为衡量网站成功与否的关键,今天和大家分享如何在PHP中利用Jquery实现Ajax方式文件上传功能的例子,其中使用到了Jquery插件Ajaxupload,其可以实现单个文件和多文件上传功能。

    jquery ajax upload

    ajaxupload.js,附demo例子 ajaxupload.js,附demo例子 ajaxupload.js,附demo例子 ajaxupload.js,附demo例子 ajaxupload.js,附demo例子

    ajaxupload无刷新文件上传,支持多文件上传,使用很方便哦

    ajaxupload.js 是一款使用jquery上传文件的js插件,对于简单的文件上传,足够可以应付, 你可以根据自身需要对前后端代码进行补充,也可以将一些功能独立出来,比如文件类型、单个文件或者多文件上传功能。总的来说...

    AjaxUpload.js

    AjaxUpload.js可以实现在Web应用系统开发中,文件上传和下载功能.使用方法参考: https://blog.csdn.net/liangmengbk/article/details/89333350

    jquery.ajaxupload.js

    AjaxUpload.js 就是一个js文件,里面封装了上传文件的代码,其实就是一个js的框架,利用它来更简单的实现文件的上传

    使用ajaxupload.js/ajaxfileupload.js实现文件上传

    整个案例是使用ajaxupload.js/ajaxfileupload.js实现文件上传,清晰明了,供大家参考,谢谢!!!

    ajaxupload

    1.修复之前存在的一些bug, 2.修复了对ie的兼容, 3.增加了对jquery10的兼容 handleError: function (s, xhr, status, e) { ... jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]); } },

    AjaxUpload.rar 文件上传

    AjaxUpload.rar 文件上传AjaxUpload.rar 文件上传AjaxUpload.rar 文件上传AjaxUpload.rar 文件上传AjaxUpload.rar 文件上传

    掌控上传进度的Ajax Upload

    原文地址 http://www.telio.be/blog/2006/01/06/ajax-upload-progress-monitor-for-commons-fileupload-example/ 博文链接:https://congjl2002.iteye.com/blog/209925

    Jquery AjaxUpload实现文件上传实例 PHP版

    以下是本人实现ajax上传图片时参考的文章,希望能对大家有帮助。

    ajaxupload.3.9.js

    利用 jQuery 插件 jform 实现文件选中直接上载,无需点提交按钮

    jquery Ajaxupload应用

    NULL 博文链接:https://teddywang.iteye.com/blog/717987

Global site tag (gtag.js) - Google Analytics