程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery AJAX文件上传PHP大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决jQuery AJAX文件上传php

开发过程中遇到jQuery AJAX文件上传php的问题如何解决?下面主要结合日常开发的经验,给出你关于jQuery AJAX文件上传php的解决方法建议,希望对你解决jQuery AJAX文件上传php有所启发或帮助;

您需要在服务器上运行的脚本来将文件移动到上载目录。jqueryAJAX方法(在浏览器中运行)将表单数据发送到服务器,然后服务器上的脚本处理上载。这是一个使用php的示例。

您的HTML很好,但是将您的Js jquery脚本更新为如下所示:

$('#upload').on('click', function() {
    var file_data = $('#sortpicture').prop('files')[0];   
    var form_data = new FormData();                  
    form_data.append('file', file_data);
    alert(form_data);                             
    $.AJAX({
        url: 'upload.php', // point to server-sIDe php script 
        dataType: 'text',  // what to expect BACk from the php script, if anything
        cache: false,
        ContentType: false,
        processData: false,
        data: form_data,                         
        type: 'post',
        success: function(php_script_responsE){
            alert(php_script_responsE); // display response from the php script, if any
        }
     });
});

现在,对于服务器端脚本,在这种情况下使用php

upload.php :一个在服务器上运行并将文件定向到上载目录的php脚本:

<?php

    if ( 0 < $_fileS['file']['error'] ) {
        echo 'Error: ' . $_fileS['file']['error'] . '<br>';
    }
    else {
        move_uploaded_file($_fileS['file']['tmp_name'], 'uploads/' . $_fileS['file']['name']);
    }

?>

另外,关于目标目录的几件事:

@H_403_22@
  • 确保您具有 正确的服务器路径 ,即从php脚本位置开始,到uploads目录的路径是什么,以及
  • 确保它是 可写的
  • 还有关于upload.php脚本中@H_375_3@move_uploaded_file使用的php函数的一些知识:

    @H_375_3@move_uploaded_file(
    
        // this is where the file is temporarily stored on the server when uploaded
        // do not change this
        $_fileS['file']['tmp_name'],
    
        // this is where you want to put the file and what you want to name it
        // in this case we are putTing in a directory called "uploads"
        // and giving it the original filename
        'uploads/' . $_fileS['file']['name']
    );
    

    $_fileS['file']['name']是文件上传时的名称。您不必使用它。您可以为文件指定所需的任何名称(与服务器文件系统兼容):

    @H_375_3@move_uploaded_file(
        $_fileS['file']['tmp_name'],
        'uploads/my_new_filename.whatever'
    );
    

    最后,请注意您的phpupload_max_filesizeANDpost_max_size配置值,并确保您的测试文件不超过两个。这是一些帮助您检查php配置以及如何设置最大文件大小和发布设置的帮助。

    解决方法

    我想在我的Intranet页面上实现一个简单的文件上传,并使用最小的设置。

    这是我的HTML部分:

    <input id="sortpicture" type="file" name="sortpic" />
    <button id="upload">Upload</button>
    

    这是我的JS jquery脚本:

    $("#upload").on("click",function() {
        var file_data = $("#sortpicture").prop("files")[0];   
        var form_data = new FormData();
        form_data.append("file",file_data);
        alert(form_data);
        $.ajax({
            url: "/uploads",dataType: 'script',cache: false,contentType: false,processData: false,data: form_data,type: 'post',success: function(){
                alert("works"); 
            }
        });
    });
    

    网站的根目录中有一个名为“ uploads”的文件夹,具有“用户”和“ IIS_users”的更改权限。

    当我选择具有文件格式的文件并按上载按钮时,第一个警报返回“ [object FormData]”。第二个警报不会被调用,“上传”文件夹也为空!

    有人可以帮助我找出问题所在吗?

    下一步也应该是,使用服务器端生成的名称重命名该文件。也许有人也可以给我解决方案。

    大佬总结

    以上是大佬教程为你收集整理的jQuery AJAX文件上传PHP全部内容,希望文章能够帮你解决jQuery AJAX文件上传PHP所遇到的程序开发问题。

    如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

    本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
    如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。