zoukankan      html  css  js  c++  java
  • js php xmlrequest 上传图片

    本来想用插件上传图片的,后来自己写了一个简单的js实现异步的图片上传,不多说上代码很easy

    upload.php

    <?php

    if(isset($_FILES["myfile"]))
    {
        $ret = array();
        $uploadDir = 'images'.DIRECTORY_SEPARATOR.date("Ymd").DIRECTORY_SEPARATOR;
        $dir = dirname(__FILE__).DIRECTORY_SEPARATOR.$uploadDir;
        file_exists($dir) || (mkdir($dir,0777,true) && chmod($dir,0777));
        if(!is_array($_FILES["myfile"]["name"])) //single file
        {
            $fileName = time().uniqid().'.'.pathinfo($_FILES["myfile"]["name"])['extension'];
            move_uploaded_file($_FILES["myfile"]["tmp_name"],$dir.$fileName);
            $ret['file'] = DIRECTORY_SEPARATOR.$uploadDir.$fileName;
        }
        echo json_encode($ret);
    }

    ?>

    index.html

    <!DOCTYPE html>
    <html>
    <head>
        <title>Html5 Ajax 上传文件</title>
        <meta charset="utf-8">

    <script type="text/javascript">


        var xhr;
        function createXMLHttpRequest()
        {
            if(window.ActiveXObject)
            {
                xhr = new ActiveXObject("Microsoft.XMLHTTP");
            }
            else if(window.XMLHttpRequest)
            {
                xhr = new XMLHttpRequest();
            }
        }


        function UpladFile()
        {
            var fileObj = document.getElementById("file").files[0];
            var FileController = 'upload.php';
            var form = new FormData();
            form.append("myfile", fileObj);
            createXMLHttpRequest();
            xhr.onreadystatechange = handleStateChange;
            xhr.open("post", FileController, true);
            xhr.send(form);
        }


        function handleStateChange()
        {
            if(xhr.readyState == 4)
            {
                if (xhr.status == 200 || xhr.status == 0)
                {
                    var result = xhr.responseText;
                    var json = eval("(" + result + ")");
                    alert('图片链接: '+json.file);
                }
            }
        }


    </script>


    <style>
        .txt{ height:28px; border:1px solid #cdcdcd; 670px;}
        .mybtn{ background-color:#FFF; line-height:14px;vertical-align:middle;border:1px solid #CDCDCD;height:30px; 70px;}
        .file{ position:absolute; top:0; right:80px; height:24px; filter:alpha(opacity:0);opacity: 0;260px }
    </style>
    </head>


    <body>

    <div class="form-group">
        <label class="control-label">图片</label>
        <br/>
        <input type='text' name='textfield' id='textfield' class='txt' />
        <span onclick="file.click()"  class="mybtn">浏览...</span>
        <input type="file" name="file" class="file" id="file" size="28" onchange="document.getElementById('textfield').value=this.value" />
        <span onclick="UpladFile()" class="mybtn">上传</span>
    </div>

    </body>


    </html>

  • 相关阅读:
    判断大小写数字个数,取交集和并集
    软件工程总结
    正则表达式(邮箱)
    今天距离你生日的天数
    字符数量,查回文
    解决一个表单中的两个或者多个按钮提交到不同的页面中问题
    jsp前台输入框不输入值,后台怎么取出整型?
    第十次作业
    CMD命令行
    Kali渗透安卓手机
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/4489469.html
Copyright © 2011-2022 走看看