使用iframe完成文件上传

 在HTML页面

<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title>使用iframe完成文件上传</title>
        <script type="text/javascript" src="../js/jquery.js"></script>
        <script type="text/javascript">
            function iframeUp() {
                //生成一个名称
                var fname = 'up'+Math.random();
                //动态生成一个iframe标签
                $("<iframe width='0' height='0' frameBorder='0' name='"+fname+"'></iframe>").appendTo($('body'));
                //将form表示的target值改为iframe的name值
                $("form:first").attr('target',fname);
            }
        </script>
    </head>
    <body>
        <h1>使用iframe完成文件上传</h1>
        <form action="upload.php" onsubmit="return iframeUp();" method="post" enctype="multipart/form-data">
            <input type="file" name="pic" onchange="$('form').submit()" />
        </form>
        <h2></h2>
    </body>
</html>

在php页面

<?php
    error_reporting(E_ALL &~ E_NOTICE);
    if($_FIELS['pic']['error'] != 0) {
        exit("没有文件被上传");
    }
    //生成新的文件名
    $arr = explode(".",$_FILES['pic']['name']);
    $newFileName = @mt_rand(100000,999999).'.'.end($arr);

    //上传文件,并生成预览的效果
    if(move_uploaded_file($_FILES['pic']['tmp_name'],"../uploads/".$newFileName)) {
        echo "<script type='text/javascript'>parent.document.getElementsByTagName('h2')[0].innerHTML = '<img src=\"../uploads/{$newFileName}\" width=\"400px\" height=\"400px\"/>'</script>";
    }

 

你可能感兴趣的:(使用iframe完成文件上传)