Php 通过ajax获取文件

Php 通过ajax获取文件,php,ajax,Php,Ajax,我有一个脚本,其中需要使用ajax处理文件。脚本中的所有内容都正常工作,只是我无法获得正确的变量。我已经尝试了所有的方法,现在我有了它 title = "<?php echo $_FILES["file"]["name"] ?>"; title=”“; 我想知道是否有人能告诉我如何成功地设置该领域的任何内容 <label for="file">Thumbnail Pic:</label> </td> <td> <input

我有一个脚本,其中需要使用ajax处理文件。脚本中的所有内容都正常工作,只是我无法获得正确的变量。我已经尝试了所有的方法,现在我有了它

title = "<?php echo $_FILES["file"]["name"] ?>"; 
title=”“;
我想知道是否有人能告诉我如何成功地设置该领域的任何内容

<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>

函数ajaxupload(){
var ajaxRequest;
试一试{
//Opera 8.0+、Firefox、Safari
ajaxRequest=新的XMLHttpRequest();
}捕获(e){
//Internet Explorer浏览器
试一试{
ajaxRequest=newActiveXObject('Msxml2.XMLHTTP');
}捕获(e){
试一试{
ajaxRequest=newActiveXObject('Microsoft.XMLHTTP');
}捕获(e){
//出了点问题
警报(“您的浏览器坏了!”);
返回false;
}
}
}
ajaxRequest.onreadystatechange=函数(){
if(ajaxRequest.readyState==4){
var ajaxDisplay=document.getElementById('response');
ajaxDisplay.innerHTML=ajaxRequest.responseText;
}
}
var songtitle=document.getElementById('songtitle')。值;
var thumbnail=document.getElementById('thumbnail')。值;
var name=document.getElementById('file').value;
var title=“”;
var description=document.getElementById('description')。值;
变量参数='songtitle='+songtitle+'&thumbnail='+thumbnail+'&title='+title+'&description='+description+'&name='+name;
open(“POST”,'ajaxupload.php',true);
setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajaxRequest.send(参数);
}
音乐上传

选择一首歌曲:
缩略图图片:

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

$.post(
    'ajaxupload.php',          // url
    $("#form_id").serialize(), // data
    function(data) {           // return function on success
        alert(data);
    }
);
但至于你来这里的真正原因,看起来很简单

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

您是想实际上传文件还是只发送文件名?我已经设置好了上传脚本,我只是不知道如何将文件名传递到文件上传页面。将代码转储与您的实际问题隔离开来。您不能像那样通过AJAX上传文件。有一种解决方法涉及将表单发布到不可见的iframe。我知道您没有使用jQuery,但您可能会在我想我可以使用jQuery时发现一些有用的东西,但实际上我讨厌它。我真的一点也不懂,我宁愿坚持使用一些我已经习惯并且知道如何使用的东西。JQuery简直让我心烦意乱;很抱歉听起来像个傻瓜。但是我会继续看这些,谢谢!这就是我写的全部吗?我的意思是,我是不是要放弃我当前的函数,然后把它粘贴在上面?我不明白jQuery是如何访问表单的变量的。是的,$(“#form_id”).serialize()应该在更改表单id和表单id后传入表单数据。当然,在jQuery中包括您的快速速成课程,$(something)是我们如何访问html中的元素,其中“#foo”获取dom中id为foo的第一个元素,“.foo”返回类名为foo的所有元素的数组。