首页 > php代码 > PHP上传图片程序代码工作笔记

PHP上传图片程序代码工作笔记

$_FILES与move_uploaded_file就可以在php代码中实现文件或图片上传了,这个比起很多编程语言来讲php上传功能是最简单最好用的了,下面来看个上传图片工作代码。

<?php
session_start();
?>
<html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>PHP上传文件</title>
 <style>
 * {margin:0; padding:0; list-style:none;}
 .content {width:400px; height:200px; margin:0 auto; margin-top:60px;
background:#ffd3b6; border:dashed 1px #f90}
 .content h1 { width:400px; height: 30px; line-height:30px; text-align:
center; font-family:"微软雅黑"; font-size:14px; color:#000}
 .content .error {width:300px; height:30px; line-height:30px;
text-align:center; margin:0 auto; color:#f00}
 .content .con {width:340px; height:auto; margin:0 auto; font-size:12px;}
 .content #file { width:280px; height:20px; border:solid 1px #ccc;
background:#fff; margin:10px 0px 6px 0; font-size:12px;}
 .content #send { width:60px; height:22px; border:solid 1px #ccc;
background:#fff; font-size:12px; margin-top:10px;}
 </style>
 </head>
<body>
 <div>
 <h1>文件上传</h1>
 <div>
 <div>
 <?php
if ($_GET['up'] == up) {
    if ($_SESSION['file'] == $_GET['irand']) {
        $_size = 20000; //设置限制文件大小
        $_dir = 'phone/'; //文件保存目录
        function size($_size) {
            //判断文件大小是否大于1024bit 如果大于,则将大小取值为KB
            if ($_size > 1024 * 1024) {
                return round($_size / 1024 / 1024, 2) . ' MB';
            } else if ($_size > 1024) {
                $_size = $_size / 1024;
                return ceil($_size) . 'KB';
            } else {
                return $_size . ' bit';
            }
        }
        //设置上传图片的类型,设置图片上传大小
        $_upfiles = array(
            'image/jpeg',
            'image/pjpeg',
            'image/png',
            'image/x-png',
            'image/gif'
        );
        if (is_array($_upfiles)) {
            if (!in_array($_FILES['userfile']['type'], $_upfiles)) {
                exit('请上传格式为:jpg,png,gif的文件<br /><a href="upload.php">返回</a>');
            }
        }
        if ($_FILES['userfile']['size'] > $_size) {
            exit('上传文件不能超过:' . size($_size));
        }
        if ($_FILES['userfile']['error'] > 0) {
            switch ($_FILES['userfile']['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;
                case 6:
                    echo '找不到临时文件夹';
                    break;
                case 7:
                    echo '文件写入失败';
                    break;
            }
            exit;
        }
        //获取文件扩展名
        if (!is_dir($_dir)) {
            mkdir($_dir, 0700);
        }
        $_rand = mt_rand(0, 100000);
        $_n = explode('.', $_FILES['userfile']['name']); //将文件名分割
        $_file_len = count($_n); //返回数组长度
        $_name = $_dir . time() . '_' . $_rand . '.' . $_n[$_file_len - 1];
        if (is_uploaded_file($_FILES['userfile']['tmp_name'])) {
            if (!@move_uploaded_file($_FILES['userfile']['tmp_name'], $_name)) {
                exit('文件移动失败');
            } else {
                echo '文件上传成功<br />';
                echo '文件路径:' . $_name . '<br />';
                echo '文件大小:' . size(filesize($_name));
                echo '<br /><a href="upload.php">返回继续上传</a>';
            }
        } else {
            exit('上传的临时文件不存在,无法将文件移动到指定文件夹');
        }
        //销毁session变量,有几种方法
        //第一种,销毁所有session变量:session_destroy();
        //第二种:销毁单个如:$_SESSION['file']=''
        session_destroy();
        exit;
    } else {
        exit('您已经提交过了,不能重复提交<br /><a href="upload.php">返回</a>');
    }
}
?>
 </div>
 <?php
$_irand = mt_rand(0, 1000000);
$_SESSION['file'] = $_irand; ?>
 <form action="?up=up&irand=<?php
echo $_irand; ?>" method="post" enctype="multipart/form-data">
 <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
 <input type="file" name="userfile" id="file"/><br />
 <input type="submit" name="send" value=" 点击上传 " id="send"/>
 </form>
 </div>
 </div>
 </body>
</html>


本文地址:http://www.phprm.com/code/62543.html

转载随意,但请附上文章地址:-)

标签:文件上传 explode

相关文章

发表留言