通过ajax获取文件

时间:2011-12-10 00:03:37

标签: php ajax

我有一个脚本,我需要使用ajax处理文件。脚本中的所有内容都有效,但我无法获得正确的变量。我已经尝试了所有的东西,而且我现在已经取而代之了

title = "<?php echo $_FILES["file"]["name"] ?>"; 

我想知道是否有人能告诉我如何成功设置此字段中的内容

<label for="file">Thumbnail Pic:</label>
</td>
<td>
<input type="file" name="thumbnail" id="thumbnail" /> 

作为我拥有的ajax脚本中的变量。非常感谢所有帮助,感谢您的帮助!

<script language='javascript' type='text/javascript'>
function ajaxupload(){
var ajaxRequest;  

try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e){
    // Internet Explorer Browsers
    try{
        ajaxRequest = new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e) {
        try{
            ajaxRequest = new ActiveXObject('Microsoft.XMLHTTP');
        } catch (e){
            // Something went wrong
            alert('Your browser broke!');
            return false;
        }
    }
}
ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('response');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;

    }
}
var songtitle = document.getElementById('songtitle').value;
var thumbnail = document.getElementById('thumbnail').value;
var name = document.getElementById('file').value;
var title = "<?php echo $_FILES["file"]["name"] ?>";
var description = document.getElementById('description').value;
var params= 'songtitle=' + songtitle + '&thumbnail=' + thumbnail + '&title=' +     title + '&description=' + description + '&name=' + name;
ajaxRequest.open("POST", 'ajaxupload.php', true);  
ajaxRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajaxRequest.send(params);

}

</script>
<div id="centered2">
<h1>Music Upload</h1>
<div id="centered">
<table>
<tr>
<td>
<h4><br><?php
echo $echovar10;
 echo $echovar20;
echo $echovar40;
echo $echovar50;
echo $echovar60;
echo $echovar120;
echo $echvoar130;
?><div id='response'></h4>
<table>
<tr>
<td>
<label for="file">Choose a song:</label>
</td>
<td>
<input type="file" name="file" id="file"/> 
</td>
</tr>
<br />
<tr>
<td>
<label for="file">Thumbnail Pic:</label>
 </td>
<td>
 <input type="file" name="thumbnail" id="thumbnail" /> 
<br />
</td>
</tr>

1 个答案:

答案 0 :(得分:1)

我真的建议你使用jQuery。它会让你的生活更轻松。这是ajax函数文档。 jQuery还为getpost方法提供了一些非常简单的包装函数。 Google托管了codeminified)这很方便。

$.post(
    'ajaxupload.php',          // url
    $("#form_id").serialize(), // data
    function(data) {           // return function on success
        alert(data);
    }
);

但至于你在这里的真正原因,看起来像一个简单的错字。

title = "<?php echo $_FILES['thumbnail']['name'] ?>";