使用Ajax将文件发送到原型

时间:2011-03-09 13:11:45

标签: ajax prototypejs

我正在尝试将文件发送到服务器但没有成功。 我有这个:

HTML (它不在表单中):

<td class="td_logo">

<input type="file" accept="image/*" multiple="false" name="realField" id="realField">

</td>

我有一个触发JS代码的按钮。

JS

function sendRequest(url, firmObj){
    new Ajax.Request(url,   
    {   
        method: 'post',   
        postBody: 'firmObj='+ Object.toJSON(firmObj),  
        onSuccess: function(){}
    });  
}

并且url调用PHP。

PHP

if( isset($_POST["firmObj"]))
{
    $firmObj = json_decode($_POST["firmObj"]);
    var_dump($firmObj); 
}else{ echo "FAIL"; }

if($_FILES['realField']['name'])
{
    print_r($_FILES['realField']['name']);
}else{ echo "FAIL";}

var_dump($firmObj)只显示我的表格中的文件名和其他输入...但$_FILES['realField']['name']始终为false并且喊“失败”!!

如何将$ _FILES填入输入数据到原型?

谢谢!!

1 个答案:

答案 0 :(得分:1)

Javascript无法读取本地文件(这将是一场安全噩梦),因此AJAX并不真正支持上传。像this one这样的脚本通过在隐藏的iframe中创建表单并提交它来工作。