您的位置:首页 > 编程语言 > PHP开发

php 文件上传图片

2016-03-09 19:16 621 查看

    

  php单文件上传图片

<html>

    <head>

        

    </head>

    <body>

        

    <form action="../core/acceptp.php" method="post"
enctype="multipart/form-data">

《enctype="multipart/form-data",这个加到表单中表示,有file控件,比如说带图片上传的表单,他本身就是把表单多数据格式上传。如果表单中没有file控件的话,就不需要加enctype="multipart/form-data",如果表单中没有file控件,但是却加上这句话的话,后台用request是取不到控件的值的。》

        <input type="file" name="myfile" /><br/>

        <input type="submit" name="submit" value="上传"/>    

    </form>

    </body>

</html>

acceptp.php

<?php

   require_once('common.php');

    $myfilename=$_FILES['myfile']['name'];

    $myfiletype=$_FILES['myfile']['type'];

    $myfiletmp=$_FILES['myfile']['tmp_name'];

    $myfileerror=$_FILES['myfile']['error'];

    $myfilesize=$_FILES['myfile']['size'];

    $limttype=array("jpg","gif","png","jpeg","wbmp");

    $myfilemaxsize=1048576;

    $type="true";

    if($myfileerror==UPLOAD_ERR_OK)

    {

        //is_uploaded_file判断文件是不是通过HTTP POST方式传上来的

       if(is_uploaded_file($myfiletmp))

       {       

                  $exename=getexename($myfilename);

                  $myfilename=getuniq().".".$exename;

           if($type){

                 $fon=@getimagesize("$myfiletmp");

                     if(!$fon){

                         alert_go("不是有效的文件");

                     }

                 

          

              if(in_array($exename,$limttype)){

                  if($myfilemaxsize>$myfilesize){

                 $desitination="pic/".$myfilename;

                if(move_uploaded_file($myfiletmp,$desitination))

                   {

                   alert_go("文件上传成功");

                   }

              else{

                      alert_go("文件移动失败");

                    }

                     }

                else{

                     alert_go("文件过大,请重新上传");

                           }

                 }

                     else{

                         alert_go("非法文件");

                     }

                  }

       }

       else

       {

           alert_go('文件不是通过HTTP POST方式传上来的');

       }

    }

    else

    {  

        switch($myfileerror){

            case 1:

            alert_go('超过了配置文件上传文件大小');//UPLOAD_ERR_INI_SIZE

            break;

            case 2:

            alert_go('超过了表单设置的文件上传大小');//UPLOAD_ERR_INI_SIZE

            case 3:

            alert_go('文件被部分上传');//UPLOAD_ERR_PARTIAL

            break;

            case 4:

            alert_go('没有文件被上传');//UPLOAD_ERR_NO_FIEL

            break;

            case 6:

            alert_go('没有找到临时目录');//UPLOAD_ERR_NO_TMP_DIR

            break;

            case 7:

            alert_go('文件不可写');//UPLOAD_ERR_CANT_WRITE

            break;

            case 8:

            alert_go('由于php的扩展程序中断了文件上传');//UPLOAD_ERR_EXTENSION

            break;

        }

    }

 ?>

//服务器端进行的配置

//1》file_uploads = On,支持通过HTTP POST方式上传文件

//2》;upload_tmp_dir =临时文件保存目录

//3》upload_max_filesize = 2M默认值是2M,上传的最大大小2M

//4》post_max_size = 8M,表单以POST方式发送数据的最大值,默认8M

//客户端进行配置

//<input type="hidden" name="MAX_FILE_SIZE" value="1024"  />
//<input type="file" name="myFile" accept="文件的MIME类型,..."/>

知识点:

getimagesize()  取的图像大小;

getimagesize() 函数将测定任何
GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM
或 WBMP 图像文件的大小并返回图像的尺寸以及文件类型和一个可以用于普通
HTML 文件中
IMG
标记中的 height/width 文本字符串。
如果不能访问
filename
指定的图像或者其不是有效的图像,getimagesize() 将返回
FALSE
并产生一条 E_WARNING 级的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: