头像文件上传 方法一: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 ...
随机推荐
- Spark SQL 编程API入门系列之Spark SQL支持的API
不多说,直接上干货! Spark SQL支持的API SQL DataFrame(推荐方式,也能执行SQL) Dataset(还在发展) SQL SQL 支持basic SQL syntax/Hive ...
- SQL常用函数集锦
..STUFF()用另一子串替换字符串指定位置.长度的子串.STUFF (<character_expression1>, <start_ position>, <len ...
- Sphinx在windows下安装使用[支持中文全文检索]
原文地址:http://www.fuchaoqun.com/2008/11/sphinx-on-windows-xp/ 前 一阵子尝试使用了一下Sphinx,一个能够被各种语言(PHP/Python/ ...
- scp 命令简明介绍
安全复制(英语:Secure copy,缩写SCP)是指在本地主机与远程主机或者两台远程主机之间基于Secure Shell(SSH)协议安全地传输电脑文件."SCP"通常指安全复 ...
- CorelDRAW 2018新增功能介绍
2018年4月11日,CorelDRAW 2018正式对外发布,最新版设计软件包已经过全面更新,是近几年来发行的最强大版本,可协助绘图专业人士将创意转换为令人惊艳的专业视觉设计.CorelDRAW 2 ...
- java+jxls利用excel模版进行导出
大多时候会出现需要导出excel的功能,利用poi可以实现简单的导出,可以说poi的功能非常强大可以做到细节的定制化操作,但相对于在office操作excel,利用poi完全生成excel会显得非常复 ...
- (fields.E304) Reverse accessor for 'UserProfile.groups' clashes with reverse accessor for 'User.groups'.
创建数据库models.py,在进行数据迁移时抛出一下异常: E:\Project\GuoJia>python manage.py makemigrations SystemCheckError ...
- HDU 2276 Kiki & Little Kiki 2( 矩阵快速幂 + 循环同构矩阵 )
蒟蒻的我还需深入学习 链接:传送门 题意:给出一个长度为 n,n 不超过100的 01 串 s ,每当一个数字左侧为 1 时( 0的左侧是 n-1 ),这个数字就会发生改变,整个串改变一次需要 1s ...
- HDU 6149 Valley Numer II (状压DP 易错题)
题目大意:给你一个无向连通图(n<=30),点分为高点和低点,高点数量<=15,如果两个高点和低点都直接连边,那么我们称这三个点形成一个valley,每个点最多作为一个valley的组成部 ...
- nysql数据库优化
硬件优化 软件优化 my.cnf参数优化,命令监控show global status\G 调优工具mysqlreport sql语句优化 索引的优化 白名单机制--百度,就是让一些不规范的语句执行查 ...