如何避免 move_uploaded_file() 在按钮单击时刷新页面

Posted

技术标签:

【中文标题】如何避免 move_uploaded_file() 在按钮单击时刷新页面【英文标题】:How to avoid move_uploaded_file() refresh the page on button click 【发布时间】:2021-06-30 02:06:36 【问题描述】:

我正在使用 jQuery 的$.ajax(),我试图在单击时将上传的文件移动到文件夹中。上传成功但我的问题是上传时页面刷新我已经尝试过e.preventDefault()<button type="button">

这是我的html代码

<input type="file" id="student-img-file" accept="image/*" name="student-img-file">
<button type="button" id="btn-submit-form" class="mt-4">Submit Form</button>

这是我的 jQuery 代码

$('button#btn-submit-form').on('click', function(e)
    let formData = new FormData()
    formData.append('student-img-data', $('#student-img-file').prop('files')[0])
    
    $.ajax(
        url: '../phpFunctions/AdmissionFormFunction.php',
        method: 'POST',
        data: formData,
        contentType: false,
        processData: false,
        cache: false,
        success: function(result)
            console.log(result)
        
    )
)

这是我的 PHP(AdmissionFormFunction.php) 代码

$studentImgData = $_FILES['student-img-data'];

if(move_uploaded_file($studentImgData['tmp_name'], '../FileUploads/' . $studentImgData['name']))
    echo "YESSSSSSSSSSSS";

顺便说一下,我没有使用表单标签

【问题讨论】:

请告诉我们您如何调用此代码。 很确定move_uploaded_file() 只会这样做:将文件移动到不同的文件夹。没有触发页面重新加载。一定是别的东西 那你的html或者js有问题,你给我们看的php代码没有导致页面刷新。据我所知,PHP 永远无法通过 ajax 调用来刷新页面 请向我们展示整个表格,而不仅仅是输入内容。 感谢这些 cmets。我终于明白为什么会这样了 【参考方案1】:

我刚刚关闭了我的 VS Code Live 服务器。我忘记了我在 vs code 中对文件夹系统所做的任何更改都会刷新页面。

【讨论】:

以上是关于如何避免 move_uploaded_file() 在按钮单击时刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

PHP move_uploaded_file无法在公共服务器上运行

move_uploaded_file() 无法打开流:没有这样的文件或目录

move_uploaded_file() 无法将文件从 tmp 移动到 dir

777 文件夹上的 move_uploaded_file 权限被拒绝

move_uploaded_file() 期望参数 2 是有效路径,给定对象

move_uploaded_file 无法打开流:权限被拒绝 - Mac