Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在没有jQuery、iFrame或flash的情况下为IE7/8制作AJAX文件上传器?_Javascript_Php_Ajax - Fatal编程技术网

Javascript 如何在没有jQuery、iFrame或flash的情况下为IE7/8制作AJAX文件上传器?

Javascript 如何在没有jQuery、iFrame或flash的情况下为IE7/8制作AJAX文件上传器?,javascript,php,ajax,Javascript,Php,Ajax,我在网上搜索,发现了很多jQuery和iframes的解决方案 有谁能给我一个解决方案,如何在没有jQuery、iFrame或flash的情况下为IE7/8制作AJAX文件上传器 这是我的HTML脚本 <!DOCTYPE html> <html> <head> <meta http-equiv='Content-type' content='text/html; charset=utf-8'> <title>Ajax U

我在网上搜索,发现了很多jQuery和iframes的解决方案

有谁能给我一个解决方案,如何在没有jQuery、iFrame或flash的情况下为IE7/8制作AJAX文件上传器

这是我的HTML脚本

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv='Content-type' content='text/html; charset=utf-8'>
    <title>Ajax Uploader</title>
    <script>

    function iajax() 
    {
        oField=document.myform.myfile;

        if (window.XMLHttpRequest) 
        {
            xmlhttp=new XMLHttpRequest(); 
        } 
        else 
        {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        }

        xmlhttp.onreadystatechange=function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) 
            { 
                document.getElementById('eds').innerHTML=xmlhttp.responseText; 
            } 
        };

        xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");

        xmlhttp.open("post","file.php",true);
        xmlhttp.send();
    }
    </script>
</head>
<body>
    <form name='myform' enctype="multipart/form-data" method="post" onsubmit="iajax(this)">
        <input type="file" name="myfile" />
        <button type="submit">Upload file to the server</button>
    </form>
    <div id='eds'></div>
</body>
</html>

Ajax上传器
函数iajax()
{
oField=document.myform.myfile;
if(window.XMLHttpRequest)
{
xmlhttp=新的XMLHttpRequest();
} 
其他的
{
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{ 
document.getElementById('eds').innerHTML=xmlhttp.responseText;
} 
};
setRequestHeader(“内容类型”、“多部分/表单数据”);
open(“post”,“file.php”,true);
xmlhttp.send();
}
将文件上载到服务器
我的PHP脚本:

<?php
$name=$_FILES['myfile']['name'];
$type=$_FILES['myfile']['type'];
$size=$_FILES['myfile']['size'];
$temp_name=$_FILES['myfile']['tmp_name'];

if(!move_uploaded_file($_FILES['myfile']['tmp_name'], './public/'.$name))
{
    echo "Image Uploading Error";
}
else
{
    echo "Upload Image Name : ".$name;
}
?>

到目前为止,我所知道的所有最新浏览器都无法将文件发送到服务器,如果您不想刷新浏览器,即使是著名的js框架和插件也使用iframe。不知道闪光灯是怎么做到的,但唯一的可能性是

  • 或者不要使用ajax
  • 否则,请使用您不想使用的上述选项之一

  • 到目前为止,我所知道的所有最新浏览器都无法将文件发送到没有iframe的服务器,如果您不想刷新浏览器,即使是著名的js框架和插件也使用iframe。不知道闪光灯是怎么做到的,但唯一的可能性是

  • 或者不要使用ajax
  • 否则,请使用您不想使用的上述选项之一

  • 打开IE10,导航到带有文件输入的页面(例如),打开控制台,切换到IE7浏览器模式,选择一个文件,键入
    console.dir(document.getElementsByTagName('input')[0])
    ,查找与所选文件相关的任何内容,而不是路径,cry。谢谢大家。我想我应该用iframe!打开IE10,导航到带有文件输入的页面(例如),打开控制台,切换到IE7浏览器模式,选择一个文件,键入
    console.dir(document.getElementsByTagName('input')[0])
    ,查找与所选文件相关的任何内容,而不是路径,cry。谢谢大家。我想我应该用iframe!