javascript - 获取后页面自动刷新,在 PHP 中使用“move_uploaded-file()”方法时
问题描述
我通过 fetch 发送文件并使用 move_uploaded_file() 方法在 PHP 中上传它们。问题是当我使用 move_uploaded_file() 方法时页面会自动刷新,即使我上传多个文件只是第一个上传并再次刷新页面。
PHP 代码
if($img['error'] == 0 && $img['size'] > 0){
if (!is_dir('naber')) {
mkdir('naber', 0777, true);
}
$allowedExts = array("gif", "jpeg", "jpg", "png");
// $extension = explode(".", $_FILES["image"]["name"]);
// $extension = end($extension);
$extension = pathinfo($img['name'])['extension'];
if(!(in_array($extension, $allowedExts))){
$result['status'] = false;
$result['errmessage'] = 'Image type is invalid';
exit(json_encode($result));
}
$target_path = 'naber/';
$filename = time().'.'. strtolower($extension);
$full_path = $target_path."".$filename;
if(move_uploaded_file($img['tmp_name'], $full_path)){
$result['status'] = true;
$result['message'] = 'Image added successfully!';
}else{
$result['status'] = false;
$result['errmessage'] = 'Image type is invalid';
exit(json_encode($result));
}
}
exit(json_encode($result));
Javascript代码:
if(document.querySelector('#submit')) document.querySelector('#submit').addEventListener('click', (e) =>{
e.preventDefault();
...
fd = new FormData();
Array.from(document.querySelectorAll('.test')).some((t) => {
.......
tests['test'+i]['img'] = t.querySelector('.input-ifile').files[0];
fd.append('test'+i+'-img',tests['test'+i]['img']);
.......
fetch('handlers/handler.php', { method: 'POST' , body: fd})
.then(function (response) {
return response.text();
})
.then(function (body) {
console.log(body)
return false;
});
})
期望的结果是将文件上传到服务器,并且 index.php 不会被刷新。
解决方案
解决方案:花了几个小时发现问题后,发现问题不在代码中。这是因为 Visual Studio Live Server 扩展而发生的。为了防止自动重新加载,只需关闭实时服务器就足够了。
推荐阅读
- python - 在 Matplotlib 中,尝试将鼠标位置存储在字典中。但它只能留下最后一项
- r - spfeml 中的错误(公式 = 公式,数据 = 数据,索引 = 索引,listw = listw,:在 R 中使用不符合的参数
- discord.py - 我怎样才能知道一个人当前是否在 discord.py 中说话?
- java - 使用 Spring Boot 的多租户 Rabbit MQ 应用程序
- php - 显示数组循环php
- c - 从给定的字符串中删除一个单词
- vhdl - 使用 Modelsim SE 在 VHDL 架构中实例化 Verilog 模块
- python - 给定总和的毕达哥拉斯三元组
- bash - 如何安全地回显脚本的所有参数?
- excel - Excel:将行转置为多个值的列