头像文件上传 方法一: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 ...
随机推荐
- web.config配置文件使用总结
我们在开发web系统的时候,使用web.config进行配置是司空见惯的,那么web.confg到底是什么呢?什么时候使用web.config呢?有几种使用web.config方式呢? 如果不太明白的 ...
- zset 有序集合
zadd key score1 value1 score2 value2 .. 添加元素 redis 127.0.0.1:6379> zadd stu 18 lily 19 hmm 20 lil ...
- UWP 读取XML文件
一.读取本地XML文件时要将xxx.xml文件的“生成操作”改为“嵌入的资源”会比较好,在手机上运行的话需要改为“内容” <?xml version="1.0" encodi ...
- SQL的where执行顺序
SQL的where执行顺序 1 mysql 从左到右. 一个原则,排除越多的条件放到第一个 例子:抄的. SELECT … WHERE p.languages_id = 1 AND m.languag ...
- depth peeling实现半透明
aaarticlea/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aH
- 理解UIView的绘制
界面的绘制和渲染 UIView是如何到显示的屏幕上的. 这件事要从RunLoop开始,RunLoop是一个60fps的回调,也就是说每16.7ms绘制一次屏幕,也就是我们需要在这个时间内完成view的 ...
- zookeeper+kafka集群搭建
一.ZK集群安装. 解压安装包后进入conf目录,conf/zoo_sample.cfg拷贝一份命名为zoo.cfg,同时也放在conf下面. zookeeper配置文件: # The number ...
- 使用jd-gui+javassist修改已编译好的class文件
1.原因:因为公司代码管理不当导致源码丢失,只好已编译好的class文件进行修改 2.首先先在myeclipse中新建java项目并导入javassist 3.将需要修改的文件放到指定文件夹下 4.. ...
- LAMP自动安装脚本
#!/bin/bash # 功能描述:LAMP自动安装脚本 # 初始化 if [ "$(cat /etc/system-release | awk '{print $(NF-1)}' | a ...
- UGUI图集管理
using UnityEngine; using System.Collections; using System.Collections.Generic; //纹理图集加载管理 public cla ...