PHP AjaxForm提交图片上传并显示图片源码


Posted in PHP onNovember 29, 2016

本文实例为大家分享了PHP AjaxForm提交图片上传并显示图片的具体代码,供大家参考,具体内容如下

PHP dofile.php 文件上传源码

<?php
$file_upload = "upload/";
$file_allow_ext='gif|jpg|jpeg|png|gif|zip|rar|ppt|xls|pdf|pptx|xlsx|docx';
$file_allow_size = 5*1024*1024;
if($_POST['submit']=="上传"){
 if(is_uploaded_file($_FILES['file']['tmp_name'])){
  $file_name = $_FILES['file']['name'];
  $file_error = $_FILES['file']['error'];
  $file_type = $_FILES['file']['type'];
  $file_tmp_name = $_FILES['file']['tmp_name']; 
  $file_size = $_FILES['file']['size'];
  $file_ext = substr($file_name, strrpos($file_name, '.')+1);
  switch($file_error){
  case 0:
  $data['status'] = 0;
  $data['msg'] = "文件上传成功!";  
  break;

  case 1:
  $data['status'] = 1;
  $data['msg'] = "文件上传失败,文件大小".$file_size."超过限制,允许上传大小".sizeFormat($file_allow_size)."!";  
  break;

  case 3:
  $data['status'] = 1;
  $data['msg'] = "上传失败,文件只有部份上传!";  
  break;

  case 4:
  $data['status'] = 1;
  $data['msg'] = "上传失败,文件没有被上传!";  
  break;

  case 5:
  $data['status'] = 1;
  $data['msg'] = "文件上传失败,文件大小为0!";  
  break; 
  }
  if(stripos($file_allow_ext,$file_ext)===false){
  $data['status'] = 1;
  $data['msg'] = "该文件扩展名不允许上传";  
  }
  if($file_size>$file_allow_size){  
  $data['status'] = 1;
  $data['msg'] = "文件大小超过限制,只能上传".sizeFormat($file_allow_size)."的文件!"; 
  } 
  if($data['status']==1){
  $data['status'] = 1;
  $data['msg'] = $data['msg'];
  exit(json_encode($data)); 
  }
  if($data['status']==0){
  if(file_exists($file_upload)){   
   $file_new_name = date("YmdHis").'_'.rand(10000,99999).'.'.$file_ext;
   $file_save_path = $file_upload.$file_new_name; 
   $data['status'] = 0;  
   $data['url'] = $file_save_path;
   move_uploaded_file($file_tmp_name,$file_save_path);
   exit(json_encode($data));    
  }else{
   exit(json_encode($data));
  }  

  }   
 }
}

function sizeFormat($size)
{
 $sizeStr='';
 if($size<1024)
 {
  return $size."bytes";
 }
 else if($size<(1024*1024))
 {
  $size=round($size/1024,1);
  return $size."KB";
 }
 else if($size<(1024*1024*1024))
 {
  $size=round($size/(1024*1024),1);
  return $size."MB";
 }
 else
 {
  $size=round($size/(1024*1024*1024),1);
  return $size."GB";
 } 
}



?>

HTML如下

<script type="text/javascript" src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://files.cnblogs.com/files/china-li/jquery.form.js"></script>

<form action="dofile.php" method="post" enctype="multipart/form-data" id="upfileimage">
<input type="hidden" name="image[]" />
<label for="file">文件:</label><input type="file" name="file" id="file" />
<input type="submit" name="submit" value="上传" />
</form>

<script type="text/javascript">
$("#upfileimage").submit(function(){
 if($("input[type=file]").val()==""){
  alert("请选择要上传的文件");
  return false;
 }
})
$(function(){
 var options = {  
  type:"POST",
  dataType:"json",
  resetForm:true,
  success:function(o){
   if(o.status==1){
   alert(o.msg);
   }else{
   $("body").append("  <img src='"+o.url+"' alt='' width='100' /><input type='hidden' name='image[]' value='"+o.url+"' />");
   }
  },
  error:function(o){
   alert(o.message);
  }  
 }
 $("#upfileimage").ajaxForm(options).submit(function(){return false;});

})
</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
提升PHP执行速度全攻略(上)
Oct 09 PHP
PHP中使用CURL伪造来路抓取页面或文件
May 04 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
PHP使用递归生成文章树
Apr 21 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
PHP的Laravel框架中使用AdminLTE模板来编写网站后台界面
Mar 21 PHP
ThinkPHP 在阿里云上的nginx.config配置实例详解
Oct 11 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
Jul 01 PHP
laravel5表单唯一验证的实例代码
Sep 30 PHP
关于Laravel-admin的基础用法总结和自定义model详解
Oct 08 PHP
laravel框架使用极光推送消息操作示例
Feb 15 PHP
TP5框架页面跳转样式操作示例
Apr 05 PHP
php判断是否为ajax请求的方法
Nov 29 #PHP
PHP判断文件是否被引入的方法get_included_files用法示例
Nov 29 #PHP
php获取开始与结束日期之间所有日期的方法
Nov 29 #PHP
PHP精确计算功能示例
Nov 29 #PHP
PHP 搜索查询功能实现
Nov 29 #PHP
php Session无效分析资料整理
Nov 29 #PHP
php 实现Hash表功能实例详解
Nov 29 #PHP
You might like
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
PHP简单判断手机设备的方法
2016/08/23 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
Laravel 队列使用的实现
2019/01/08 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
XP折叠菜单&amp;仿QQ2006菜单
2006/12/16 Javascript
再谈IE中Flash控件的自动激活 ObjectWrap
2007/03/09 Javascript
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
AngularJS基础 ng-disabled 指令详解及简单示例
2016/08/01 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
2020/04/09 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
google广告之另类js调用实现代码
2020/08/22 Javascript
OpenLayer学习之自定义测量控件
2020/09/28 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
基于Python实现一个简单的银行转账操作
2016/03/06 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
Python tkinter实现的图片移动碰撞动画效果【附源码下载】
2018/01/04 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
TensorFlow2.0使用keras训练模型的实现
2021/02/20 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
毕业生自荐信
2013/12/14 职场文书
卫生巾广告词
2014/03/18 职场文书
学生安全承诺书
2014/05/22 职场文书
坎儿井导游词
2015/02/09 职场文书
前台岗位职责范本
2015/04/16 职场文书