php+ajax文件上传

html:

<input id="user_real_name" class="input_show" type="text" value="" placeholder="姓名">

<input id="file1" class="ufile" type="file" name="file1" accept="image/gif,image/jpeg,image/jpg,image/png">

<input id="file2" class="ufile" type="file" name="file2" accept="image/gif,image/jpeg,image/jpg,image/png">

<input id="file3" class="ufile" type="file" name="file3" accept="image/gif,image/jpeg,image/jpg,image/png">

javascript:

var user_real_name = $("#user_real_name").val();
var fileObj1 = document.getElementById("file1").files[0]; // js 获取文件对象
var fileObj2 = document.getElementById("file2").files[0]; // js 获取文件对象
var fileObj3 = document.getElementById("file3").files[0]; // js 获取文件对象 var formFile = new FormData(); formFile.append("user_real_name",user_real_name);
formFile.append("file1", fileObj1);//加入文件对象
formFile.append("file2", fileObj2);//加入文件对象
formFile.append("file3", fileObj3); //加入文件对象 $.ajax({
url:"/User/userUpdate",
data:formFile,
type:"post",
dataType:"json",
processData :false, // 不处理发送的数据,因为data值是Formdata对象,不需要对数据做处理
contentType :false, // 不设置Content-type请求头
success:function(data){
    if(data.statusCode==200){
      console.log("成功");
}else{
console.log("失败");
    }
$("input[type=file]").val('');
},
error:function(){
console.log("错误");
  }
});

php:

$data['user_real_name']=$_POST['user_real_name'];

if(!empty($_FILES)){
  //有文件上传时
$msg['img1']='';
$msg['img2']='';
$msg['img3']='';
if(!empty($_FILES['file1'])){
$file['file']=$_FILES['file1'];
$url = ToolModel::UploadAws($file); //亚马逊云上传
$data["user_face_image"]=trim($url); //返回的文件路径
$msg['img1']=$data["user_face_image"];
}
if(!empty($_FILES['file2'])){
$file['file']=$_FILES['file2'];
$url = ToolModel::UploadAws($file); //上传
$data["user_back_image"]=trim($url); //返回的文件路径
$msg['img2']=$data["user_back_image"];
}
if(!empty($_FILES['file3'])){
$file['file']=$_FILES['file3'];
$url = ToolModel::UploadAws($file); //上传
$data["user_body_image"]=trim($url); //返回的文件路径
$msg['img3']=$data["user_body_image"];
}
}
$User = new UserModel();
$res =$User->userUpdate($uid,$data); //更新数据
if($res!==false){
$msg['statusCode']=200;
$msg['msg']='上传成功';
$this->ajaxReturn($msg,'JSON');
}else{
$msg['statusCode']=1000;
$msg['msg']='上传失败';
$this->ajaxReturn($msg,'JSON');
}
 

php+ajax文件上传的更多相关文章

  1. AJAX文件上传实践与分析,带HTML5文件上传API。

    对于HTML5已经支持AJAX文件上传了,但如果需要兼容的话还是得用一点小技巧的,HTML5等等介绍,先来看看以前我们是怎么写的. 网上可能会有一些叫AJAX文件上传插件,但在AJAX2.0之前是不可 ...

  2. 兼容ie的jquery ajax文件上传

    Ajax文件上传插件很多,但兼容性各不一样,许多是对ie不兼容的,另外项目中是要求将网页内容嵌入到桌面端应用的,这样就不允许带flash的上传插件了,如:jquery uploadify...悲剧 对 ...

  3. jQuery插件AjaxFileUpload实现ajax文件上传

    转自:http://www.cnblogs.com/linjiqin/p/3530848.html jQuery插件AjaxFileUpload用来实现ajax文件上传,该插件使用非常简单,接下来写个 ...

  4. ajax 文件上传,ajax

    ajax 文件上传,ajax 啥也不说了,直接上代码! <input type="file" id="file" name="myfile&qu ...

  5. 转: 如何实现jQuery的Ajax文件上传

    [PHP文件上传] 在开始之前,我觉得是有必要把通WEB上传文件的原理简单说一下的.实际上,在这里不管是PHP,JSP,还是ASP处理上传的文件,其实都是WEB早已把文件上传到服务器了,我们只是运用上 ...

  6. [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传

    原文 [代码示例]用Fine Uploader+ASP.NET MVC实现ajax文件上传 Fine Uploader(http://fineuploader.com/)是一个实现 ajax 上传文件 ...

  7. springmvc+ajax文件上传

    环境:JDK6以上,这里我是用JDK8,mysql57,maven项目 框架环境:spring+springmvc+mybaits或spring+springmvc+mybatis plus 前端代码 ...

  8. iframe实现Ajax文件上传效果示例

    <!doctype html> <html> <head> <meta charset=utf-8> <head> <title> ...

  9. 使用ajax提交form表单,包括ajax文件上传【转载】

    [使用ajax提交form表单,包括ajax文件上传] 前言 转载:作者:https://www.cnblogs.com/zhuxiaojie/p/4783939.html 使用ajax请求数据,很多 ...

随机推荐

  1. [译]Ocelot - Request Id / Correlation Id

    原文 Ocelot可以通过header的形式发送一个requestid.ocelot会将这个requestid转发到下游服务. 如果在日志配置中设置了IncludeScopes为true,那么requ ...

  2. KNN和Kmeans聚类有什么不同?

    这两种算法之间的根本区别是,Kmeans本质上是无监督学习而KNN是监督学习.Kmeans是聚类算法,KNN是分类(或回归)算法. Kmeans算法把一个数据集分割成簇,使得形成的簇是同构的,每个簇里 ...

  3. 【Nuxt】配置路由

    export default ({store, redirect} => { if (!store.state.username) { redirect('/') } }) vuex 代码处理请 ...

  4. 401 experience

    AM: 块元素与内联元素  : div与span的区别 span只能设置水平的margin(左右内外边距) 在span里面加 display:block; 内联转块(相当于给span加了上下的边距)反 ...

  5. Bootstrap分页插件ajax返回数据,工具类的编写

    使用Bootstrap分页插件时,需要返回指定的参数,这样Bootstrap才能够识别 需要引入的css: <!-- boostrap table --> <link href=&q ...

  6. 【转】利用apktool反编译apk,并且重新签名打包

    网站:https://ibotpeaches.github.io/Apktool,下载安装好apktool. 我的安装在 C:\Users\Administrator\Downloads\apktoo ...

  7. webstorm javascript 分号提示如何自动补全或去掉?

    转载于: https://segmentfault.com/q/1010000006930809?_ea=1180552 如图片显示,每行末尾都会提示你加上分号,如何让IDE自动完成这个操作或者取消这 ...

  8. C++设计模式——适配器模式

    生活中的适配器 买笔记本电脑,买手机时,都有一个电源适配器,电源适配器又叫外置电源,是小型便携式电子设备及电子电器的供电电压变换设备,常见于手机,笔记本电脑上.它的作用是将家里的220V高电压转换成这 ...

  9. python学习第25天

    异常处理 什么是异常?什么是错误? 1,程序中难免出现错误. 错误主要分为两种: 1,语法错误 语法错误是根本上的错误,无法通过PYTHON解释器.完全无法执行,是在程序中不应该出现的错误.无法进行异 ...

  10. 【原创】大叔问题定位分享(12)Spark保存文本类型文件(text、csv、json等)到hdfs时为什么是压缩格式的

    问题重现 rdd.repartition(1).write.csv(outPath) 写文件之后发现文件是压缩过的 write时首先会获取hadoopConf,然后从中获取是否压缩以及压缩格式 org ...