头像文件上传 方法一:from表单 方法二:ajax
方法一:from表单
html
设置form表单,内包含头像预览div,内包含上传文件input
设置iframe用来调用函数传参路径
<!--表单提交成功后不跳转处理页面,而是将处理数据返回给iframe框架,用target属性,属性值为框架的name-->
<form id="form1" action="chuli.php" method="post" enctype="multipart/form-data" target="sc">
<!--头像显示位置-->
<div id="show">
<!--删除了提交按钮,设置当路径改变时执行表单提交,脚本语句可以直接写在函数后-->
<!--文件上传设为透明,充满整个div,使得点击头像框时可以执行浏览图片-->
<input type="file" id="file" name="file" onchange="$('#form1').submit();"/>
</div>
</form> <!--框架-->
<iframe id="sc" name="sc"></iframe>
js
function showImage(path){
$('#show').css('background-image','url('+path+')');
}
//onchange后面的调用函数
// function aa(){
// $('#form1').submit();
// }
php
//文件名
$name = $_FILES['file']['name'];
//文件类型
$type = $_FILES['file']['type'];
//临时路径
$tmp_name = $_FILES['file']['tmp_name'];
//错误代码
$error = $_FILES['file']['error'];
//文件大小
$size = $_FILES['file']['size'];
//如果文件名不为空则向下判断
if(!empty($name)){
//如果错误等于0 则没有错误,往下判断
if($error == 0){
//文件类型为图片时
if($type == 'image/png'){
//文件大小小于100000b
if($size <=100000){
//如果不存在文件夹upfile
if(!is_dir("./image/")){
//创建文件夹upfile
mkdir("./image/");
}
//定义时间戳
$time = time();
//文件路径设置为
$path = "./image/".$time.$name;
//如果文件移动成功
if(move_uploaded_file($tmp_name,$path)){
//返回给页面的数据
//因为iframe为页面的子元素,所以.parent为页面,.showImage为其中的函数,$path为传参路径
echo "<script>window.parent.showImage('{$path}')</script>";
}else{
echo'上传失败';
}
//否则则输出文件过大
}else{
echo'文件过大';
}
//若不是图片则输出格式不对
}else{
echo'文件格式不对';
}
//错误代号,输出各种错误意思。
}else{
switch($error){
case '1':
echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
break;
case '2':
echo '传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。';
break;
case '3':
echo '文件只有部分被上传';
break;
case '4':
echo '没有文件被上传';
break; }
}
//文件名为空,则输出文件为空
}else{
echo '文件为空';
}
方法二:ajax
html
<!--头像框,设置宽高,背景图,背景大小100%-->
<div id="showing">
<!--上传文件,设置宽高100%,透明-->
<input type="file" id="file" name="file" onchange="upload()" />
</div>
<!--<input type="button" value="上传" onclick="upload()" />-->
js
function upload(){
//拿到文件名
var path = $('#file').val();
//如果文件名中的换行空格等,为空则提示要选择文件
if($.trim(path) == ""){
alert('请选择要选择的文件');
return;
}
$.ajaxFileUpload({
url:'chuli.php',
type:'post',
secureuri:false,//是否启用安全提交,默认false
fileElementId:'file',//上传文件的id,name属性名
dataType:'text',
data:{},
success:function(data){//console.log(data);
$('#showing').css('background-image','url('+data+')');
}
});
}
php与上面相同,只是返回值只为文件路径。
$name = $_FILES['file']['name'];
$type = $_FILES['file']['type'];
$tmp_name = $_FILES['file']['tmp_name'];
$error = $_FILES['file']['error'];
$size = $_FILES['file']['size'];
if(!empty($name)){
if($error == 0){
if($type == 'image/png'){
if($size <=100000){
if(!is_dir("./image/")){
mkdir("./image/");
}
$time = time();
$path = "./image/".$time.$name;
if(move_uploaded_file($tmp_name,$path)){
echo $path;
}else{
echo'上传失败';
}
}
}
}
}
trim() 函数移除字符串两侧的空白字符或其他预定义字符。
- "\0" - NULL
- "\t" - 制表符
- "\n" - 换行
- "\x0B" - 垂直制表符
- "\r" - 回车
- " " - 空格
头像文件上传 方法一:from表单 方法二:ajax的更多相关文章
- Spring MVC 文件上传、Restful、表单校验框架
目录 文件上传 Restful Restful 简介 Rest 行为常用约定方式 Restful开发入门 表单校验框架 表单校验框架介绍 快速入门 多规则校验 嵌套校验 分组校验 综合案例 实用校验范 ...
- [原创]java WEB学习笔记49:文件上传基础,基于表单的文件上传,使用fileuoload 组件
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- js文件上传原理(form表单 ,FormData + XHR2 + FileReader + canvas)
目录 form表单上传 FormData + XHR2 + FileReader + canvas 无刷新本地预览压缩上传实例 目前实现上传的方式 浏览器小于等于IE9(低版本浏览器)使用下面的方式实 ...
- angularjs 文件上传 如何绑定file表单的change?
ng-change 会失灵 , 唯一的解决方式 是 onchange="angular.element(this).scope().fileNameChanged()"然后利用 n ...
- jqm文件上传,上传图片,jqm的表单操作,jqm的ajax的使用,jqm文件操作大全,文件操作demo
近期在论坛中看到.在使用html5中上传图片或文件,出现各种问题. 这一方面,我也一直没有做过,今天就抽出了一点时间来学习一下.如今的演示样例已经ok了,我就给大家分享一下,希望对大家有帮助. 好吧. ...
- SmartUpload实现文件上传时file和表单文本同时提交的问题
JSP页面: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8 ...
- 八 SpringMVC文件上传,必须设置表单提交为post
1 修改Tomcat配置,本地目录映射 那么在server.xml中体现为: 测试一下是否设置成功: 2 引入jia包 3 配置多媒体解析器 3 jsp开启图片上传 4 Controller层设置 ...
- 将本地文件上传到指定的服务器(HttpWebRequest方法)
将本地文件上传到指定的服务器(HttpWebRequest方法),通过文件流,带文件名,同文件一同上传的表单文本域及值. ///<summary> /// 将本地文件上传到指定的服务器(H ...
- 项目总结07:JS图片的上传预览和表单提交(FileReader()方法)
JS图片的上传预览和表单提交(FileReader()方法) 一开始没有搞明白下面这块代码的,今天有时间简单整理下 核心点:FileReader()方法 以下是代码(以JSP文件为例) <!DO ...
随机推荐
- 浅谈for循环
for循环 <script> /* ** (1) 是执行代码块之前 ** (2) 运行代码块的条件 ** (3) 需要执行的代码块 ** (4) 代码块执行后执行 ** 执行顺序是(1)( ...
- 如何在maven项目中使用spring
今天开始在maven项目下加入spring. 边学习边截图. 在这个过程中我新建了一个hellospring的项目.于是乎从这个项目出发开始研究如何在maven项目中使用spring.鉴于网上的学习资 ...
- POJ 3185 DFS
好像可以用高斯消元??? 但是用搜索写 这题就很水了... // by SiriusRen #include <bitset> #include <cstdio> using ...
- 获取sqlserver数据字典的完整sql
SELECTsysobjects.name AS 表名称 , --------------as 的作用:为字段起一个别名 --sysproperties.[value] AS 表说明 , ------ ...
- 入门 IT 行业,该具备哪些技能?
对于刚开始进入IT的新人来说,“必备技能”往往意味着一个长长的.标有重要度的学习列表,但是过长的列表通常会导致新人不知如何开始学习,压力倍增.本文尝试列举出最重要的几个技能,也期望通过此列表能给新人一 ...
- CDR发展史-CorelDRAW经历了哪些版本?
1989年CorelDRAW横空出世,它引入了全彩矢量插图和版面设计程序,这在计算机图形领域掀起了一场风暴般的技术革新.两年后,Corel又推出了首款一体化图形套件(第 3 版),将矢量插图.版面设计 ...
- node——文件夹创建
//创建文件夹 var fs=require('fs'); //1.异步 fs.mkdir("./第一个目录",function(err){ if (err) { return c ...
- HDU 1061 Rightmost Digit( 快速幂水 )
链接:传送门 题意:求 N^N 的个位 思路:快速幂水题 /********************************************************************** ...
- [学习笔记] CS131 Computer Vision: Foundations and Applications:Lecture 1 课程介绍
课程大纲:http://vision.stanford.edu/teaching/cs131_fall1718/syllabus.html 课程定位: 课程交叉: what is (computer) ...
- JS中的五种去重方法
JS中的五种去重方法 第一种方法: 第二种方法: 第三种方法: 第四种方法: 第五种方法:优化遍历数组法 思路:获取没重复的最右一值放入新数组 * 方法的实现代码相当酷炫,* 实现思路:获取没重复的 ...