php - 图片上传后页面刷新
问题描述
上传图片后,我的页面会刷新,但我不知道如何阻止这种情况发生。我有e.preventDefault()
。
我知道这可能与这条线有关
if(in_array($ext, $allowed) && move_uploaded_file($temp, 'uploads/'.$name))
这是我的代码
$(document).ready(function(){
var dropZone = document.getElementById('drop-zone');
$(".upload-area").on('drop', function(e){
e.preventDefault();
var files_list = e.originalEvent.dataTransfer.files;
var formData = new FormData();
for(i = 0; i < files_list.length; i++){
formData.append('file[]', files_list[i]);
}
uploadData(formData);
dropZone.ondragover = function(e){
return false;
}
dropZone.ondragleave = function(e){
return false;
}
});
function uploadData(formdata){
$.ajax({
url: 'upload.php',
type: 'post',
data: formdata,
contentType: false,
processData: false,
dataType: 'json',
success: function(response){
addThumbnail(response);
}
});
}
function addThumbnail(data){
var len = $("#uploadfile div.thumbnail").length;
var num = Number(len);
num = num + 1;
var src = data.src;
// console.log(len);
$("#thumbnail_"+num).append('<img src="'+src+'" width="100%" height="78%">');
}
我的上传.php
$allowed = ['png', 'jpg'];
foreach($_FILES['file']['name'] as $key => $name)
{
$temp = $_FILES['file']['tmp_name'][$key];
$ext = explode('.', $name);
$ext = strtolower(end($ext));
if(in_array($ext, $allowed) && move_uploaded_file($temp, 'uploads/'.$name))
{
$return_arr = array("name" => $filename,"size" => $filesize);
}
echo json_encode($return_arr);
}
我的 index.php
<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="files[]" id="file" multiple>
<!-- Drag and Drop container-->
<div class="upload-area" id="drop-zone">
<h1>Drag and Drop file here<br/>Or<br/>Click to select file</h1>
</div>
</form>
解决方案
将提交按钮置于隐藏格式。请按照以下步骤操作。
在 HTML 中,
<input type="submit" id="submitBtn" style="display:none;">
在 Javascript 中,
function submitMe() {
$("#submitBtn").trigger("click");
}
$(".upload-area").on('drop', function(e){
----
----
submitMe();
});
推荐阅读
- haskell - 访问数据属性 [Haskell]
- javascript - 如何保护代码不破坏 Javascript 中的空值?
- xml - 将 BPEL 1.1 迁移到 BPEL 2.0(自动化)?
- java - 可以从另一个本地方法调用一个本地方法吗?
- java - 如何使用 Java JPA 为同一对象设计“打开”和“归档”表?
- php - SQL 注入 - 如果第一个查询失败,则强制执行第二个查询
- python-3.x - 导入opencv时出现Python3重新链接问题
- python-3.x - 浮点数无法从不和谐中读取上下文?
- java - 为什么杰克逊将超类序列化为单独的对象?
- python - 对python列表中的连续项目对进行排序