博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
头像文件上传 方法一:from表单 方法二:ajax
阅读量:5871 次
发布时间:2019-06-19

本文共 3830 字,大约阅读时间需要 12 分钟。

方法一:from表单

html

设置form表单,内包含头像预览div,内包含上传文件input

设置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 "";                    }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

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" - 回车
  • " " - 空格

 

转载于:https://www.cnblogs.com/SSs1995/p/9239681.html

你可能感兴趣的文章
20155229 2016-2007-2 《Java程序设计》第一周学习总结
查看>>
[转自360kr]如何才能进入Facebook工作?公司内部工程师告诉你
查看>>
SharePoint的十大优势
查看>>
Struts12---文件的下载
查看>>
TYVJ P1073 加分二叉树 Label:区间dp
查看>>
Struts2 get 传值乱码过滤器配置
查看>>
02、Http协议
查看>>
div中嵌套div水平垂直居中
查看>>
Android数据存储(3):External Storage
查看>>
加快ALTER TABLE 操作速度
查看>>
牛客网暑期ACM多校训练营(第三场) E Sort String 哈希处理字符串(模板)
查看>>
MySQL字符集小结
查看>>
搭建用友开发环境(基于碧桂园的nchome)
查看>>
Java中startWith方法的使用!
查看>>
Python多线程学习(上)
查看>>
centos7 安装nginx
查看>>
spring cloud eureka 配置
查看>>
查找nginx安装的路径
查看>>
批量 kill mysql 中运行时间长的sql
查看>>
Docker发布镜像至Docker Hub
查看>>