使用FormData,进行Ajax请求并上传文件;具体代码如下:

html代码:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script type="text/javascript" src="./jquery-1.11.0.min.js" ></script>
<title>测试</title>
</head>
<body> <button id="uploadAll">上传</button> <br><br>
<form id= "uploadForm">
<input type="file" name="uploadData" style="display:none" id="uploadimg" onchange="uploadFile()" /> <br>
<input type="hidden" name="data-id" style="display:none" id="offerid" value="" /> <br>
</form> </body>
</html>

js代码:

<script>

    $("#uploadAll").on("click", function(){
// alert("上传");
$("#uploadimg").click();
});
function uploadFile()
{
var formData = new FormData($( "#uploadForm" )[0]);
$.ajax({
url: "./uploadAll.php",
type: 'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success: function (returndata) {
// alert(returndata); return false;
if ( returndata=="上传成功!") {
alert("上传成功!");return true;
};
alert(returndata);return false;
},
error: function (returndata) {
alert(returndata);
}
});
} </script>

php代码:

<?php

// 获取上传文件的信息
// print_r($_FILES["uploadData"]);die();
if(is_uploaded_file($_FILES['uploadData']['tmp_name'])){
  $upFile = $_FILES["uploadData"]; // 获取数组里面的值
  $name = $upFile["name"]; // 上传文件的文件名
  $type = $upFile["type"]; // 上传文件的类型
  $size = $upFile["size"]; // 上传文件的大小
  $tmp_name = $upFile["tmp_name"]; // 上传文件的临时存放路径
  //判断是否为图片
  switch ($type){
    case 'image/pjpeg': $okType=true;break;
    case 'image/jpeg': $okType=true;break;
    case 'image/gif': $okType=true;break;
    case 'image/png': $okType=true;break;
  }

  if($okType){
    /**
     * 0:文件上传成功<br/>
     * 1:超过了文件大小,在php.ini文件中设置<br/>
     * 2:超过了文件的大小MAX_FILE_SIZE选项指定的值<br/>
     * 3:文件只有部分被上传<br/>
     * 4:没有文件被上传<br/>
     * 5:上传文件大小为0
     */
    $error=$upFile["error"];// 上传后系统返回的值
    //把上传的临时文件移动到upload目录下面
    move_uploaded_file( $tmp_name,"./upload/".$name );
    if($error==0){
      echo "上传成功!";
    }elseif ($error==1){
      echo "超过了文件大小,在php.ini文件中设置";
    }elseif ($error==2){
      echo "超过了文件的大小MAX_FILE_SIZE选项指定的值";
    }elseif ($error==3){
      echo "文件只有部分被上传";
    }elseif ($error==4){
      echo "没有文件被上传";
    }else{
      echo "上传文件大小为0";
    }
  }else{
    echo "请上传jpg,gif,png等格式的图片!";
  }
}else{
  echo "您没有上传任何东西!";
}

?>

ajax上传的更多相关文章

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

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

  2. asp.net MVC ajax上传文件

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

  3. springMVC+jsp+ajax上传文件

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

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

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

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

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

  6. Ajax上传文件进度条显示

    要实现进度条的显示,就要知道两个参数,上传的大小和总文件的大小 html5提供了一个上传过程事件,在上传过程中不断触发,然后用已上传的大 小/总大小,计算上传的百分比,然后用这个百分比控制div框的显 ...

  7. java Springmvc ajax上传

    ajax上传方式相对于普通的form上传方式要便捷,在更多的时候都会使用ajax (简单的小示例) 1.要先去下载一个 jquery.ajaxfileupload.js(基于jquery.js上的js ...

  8. 基于HTML5和JSP实现的图片Ajax上传和预览

    本文对如何实现使用Ajax提交"multipart/form"格式的表单数据,已经如何在图片上传之前,在浏览器上进行预览.使用的主要相关技术HTML5的FILE API,XMLHt ...

  9. 利用jquery+iframe做一个ajax上传效果

    以下是自学it网--中级班上课笔记 网址:www.zixue.it html页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict ...

  10. 伪ajax上传文件

    伪ajax上传文件   最近在折腾伪ajax异步上传文件. 网上搜索了一下,发现大部分方法的input file控件都局限于form中,如果是在form外的呢? 必须动态生成一个临时form和临时if ...

随机推荐

  1. HDU 4387 Stone Game (博弈)

    题目:传送门. 题意:长度为N的格子,Alice和Bob各占了最左边以及最右边K个格子,每回合每人可以选择一个棋子往对面最近的一个空格移动.最先不能移动的人获得胜利. 题解: k=1时 很容易看出,n ...

  2. 6. ZigZag Conversion

    题目: The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows l ...

  3. WIN7 64位系统下,右下角的声音和电源图标不见的解决办法

    近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.Ctrl+Shift+Esc键调出windows资源管理器. 2.找到进程中的exp ...

  4. java annotation

    import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.an ...

  5. 模拟赛1029d2

    [问题描述]祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色.此后,你可以发射珠子到轨道上并加入原有序列中.一旦有三个或更多同色的珠子变 ...

  6. NPOI基本操作XLS

    using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using Sys ...

  7. 恶趣味小游戏 I'm hungry

    之前学算法的时候无聊做了个游戏放松放松,现在传到了github以免电脑坏了就永远丢失了... github地址:https://github.com/BenDanChen/IamHungry I am ...

  8. mysql的存储过程

    mysql5中开始引入存储过程,存储过程是一组为了完成特定功能的sql语句集,经编译后存储在数据库中. 存储过程的特点(优点): 1:减小网络通信量.调用一个行数不多的存储过程与直接高用SQL语名的网 ...

  9. JDBC 精度

    http://www.cnblogs.com/tobecrazy/p/3390021.html http://www.cnblogs.com/kerrycode/p/4034231.html http ...

  10. 与你相遇好幸运,mbview的mbtiles文件分析

    mbview是一个查看.mbtiles文件的本地程序. https://github.com/mapbox/mbview .mbtiles文件就是一个Sqlite文件,用Navicat Premium ...