当前位置: 首页 > 面试题库 >

用jQuery $ .ajax和php上传文件

郜卓君
2023-03-14
问题内容

我希望在用户使用$ .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']);

谢谢


问题答案:

您无法使用AJAX上传文件,但可以使用,iframe因此不必刷新当前页面。

很多人都对插件束手无策,但您可以轻松完成此操作,并具有AJAX请求的所有功能。

不必使用AJAX函数,而是将表单提交到iframe具有load事件处理程序的隐藏文件中,以便在提交表单时,您实际上具有服务器响应(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
    });
});


 类似资料:
  • 问题内容: 我想在我的Intranet页面上实现一个简单的文件上传,并使用最小的设置。 这是我的HTML部分: 这是我的JS jQuery脚本: 网站的根目录中有一个名为“ uploads”的文件夹,具有“用户”和“ IIS_users”的更改权限。 当我选择具有文件格式的文件并按下上载按钮时,第一个警报将返回“ [object FormData]”。第二个警报不会被调用,“上传”文件夹也为空!

  • 我想在我的内联网页面中实现一个简单的文件上传,尽可能使用最小的设置。 这是我的HTML部分: 这是我的JS jquery脚本: 在网站的根目录中有一个名为“uploads”的文件夹,具有“users”和“IIS_users”的更改权限。 当我使用文件表单选择一个文件并按下上载按钮时,第一个警报返回“[object FormData]”。第二个警报未被调用,“上载”文件夹也为空!? 有人能帮我找出问

  • 问题内容: 我设计了一个简单的表格,允许用户将文件上传到服务器。最初,表单包含一个“浏览”按钮。如果用户要上传多个文件,则需要单击“添加更多文件”按钮,该按钮会在表单中添加另一个“浏览”按钮。提交表单后,文件上传过程将在“ upload.php”文件中处理。对于上载多个文件,它工作得很好。现在,我需要使用jQuery的’.submit()’提交表单,并将ajax [‘.ajax()’]请求发送至’

  • 问题内容: 看来我还没有清楚地传达出我的问题。我需要发送一个文件(使用AJAX),并且需要使用Nginx HttpUploadProgressModule 获取文件的上传进度。我需要一个很好的解决方案。我已经尝试过使用jquery.uploadprogress插件,但是我发现自己不得不重写其中的大部分内容,以使其在所有浏览器中都能正常工作并使用AJAX发送文件。 我所需要的只是执行此操作的代码,它

  • 问题内容: 我可以使用以下jQuery代码使用ajax请求的POST方法执行文件上传吗? 如果可能,我是否需要填写部分?这是正确的方法吗?我只将文件发布到服务器端。 我一直在搜索,但是我发现是一个插件,而在我的计划中我不想使用它。至少目前是这样。 问题答案: 上传文件是 不是 有可能通过AJAX。 您可以使用来上传文件,而无需刷新页面。 更新 使用XHR2,支持通过AJAX上传文件。例如通过对象,

  • 问题内容: 我已经进行了很多搜索,以了解如何使用Ajax从表单上载文件,并发现xhr2应该可以做到。但是,我已经尝试过使用FormData对象,但它不起作用。 这是一个简单的html表单 这是“ post.php”文件,当以“老式”方式运行时,它可以正常工作: 这是“ upload.js” 您知道为什么它不起作用吗?控制台返回“未发送文件”。 非常感谢 ! 问题答案: 尝试替换代码: 有了这个: