2

当用户使用 $.ajax 在输入文件中选择文件时,我希望异步上传文件。但是接收调用的php返回索引未定义。jquery代码是下一个:

$("#urlimatge").change(function(){
            var filename = $("#urlimatge").val();
            $.ajax({ 
                type: "POST",
                url: "utils/uploadtempimg.php",
                enctype: 'multipart/form-data',
                data: {'urlimatge' : filename },
                success: function(response){
                     alert(response);
                }
            }); 

        });

和调用调用的 php:

$image =  new gestorimatges();
$target_path = $image->uploadTemp($_FILES['urlimatge']['name'],$_FILES['urlimatge']['tmp_name']);

谢谢

4

3 回答 3

3

您不能将 $_FILE 从 AJAX 传递给 PHP。

我建议使用插件

它会让你的生活更轻松 :)这里还有一个视频教程可以帮助你

于 2012-04-21T16:33:42.493 回答
2

您可能想为此使用像uploadify这样的工具。

于 2012-04-21T16:31:39.963 回答
1

您不能使用 AJAX 上传文件,但您可以使用 an,iframe这样您就不必刷新当前页面。

许多人对插件束手无策,但您可以很容易地自己完成,并且具有 AJAX 请求的所有功能。

不使用 AJAX 函数,而是将表单提交到附加iframeload事件处理程序的隐藏项,因此当提交表单时,您有一个回调函数,该函数实际上包含服务器响应(iframe加载后的 HTML)。

例子:

HTML --

<form action="..." method="post" encrypt="application/x-www-form-urlencoded" target="workFrame" >
    <input type="file" name="file" />
    <input type="submit" />
</form>
<iframe id="workFrame" src="about:blank" style="display:none;"></iframe>

JS——

$(function () {
    $('form').on('submit', function () {
        //check if the form submission is valid, if so just let it submit
        //otherwise you could call `return false;` to stop the submission
    });

    $('#workFrame').on('load', function () {

        //get the response from the server
        var response = $(this).contents().find('body').html();

        //you can now access the server response in the `response` variable
        //this is the same as the success callback for a jQuery AJAX request
    });
});
于 2012-04-21T16:36:13.537 回答