【前端】js+php实现图片拖拽上传

本文介绍了一个使用HTML5和JavaScript实现的拖拽图片上传功能示例,包括前端页面样式和交互逻辑,以及PHP后端处理文件上传的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>拖拽图片上传</title>
</head>
<body>
	<style type="text/css">
		* {
			margin: 0;
			padding: 0;
			list-style: none;
		}
		#box {
			height: 300px;
			width: 800px;
			margin: 10px auto;
			background: #F0F8FF;
			padding: 50px;
		}
	</style>
<div id="box"></div>
</body>
</html>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript">
	var box = document.getElementById('box');
	box.ondragover=function(e){
		e.preventDefault();
	}
	box.ondrop=function(e){
		e.preventDefault();
		var file = e.target.files?e.target.files[0]:e.dataTransfer.files[0];
		var f = e.dataTransfer.files[0];
		fileType = f.type;
		fileSize = f.size;
		reader = new FileReader();
		var maxsize = 20480;
		var reg = /(image)/;
		if(!reg.test(fileType)){
			alert('不是正确的数据类型!');
			return false;
		}
		if(fileSize>maxsize*1024){
			alert('素材大于'+maxsize+'KB');
			return false;
		}
		var fr = new FileReader();
		fr.readAsDataURL(f);
		fr.onload=function(e){
			var Url = this.result;
			box.innerHTML+='<img src="'+Url+'" alt="" width="200" height="200" style="margin:10px;">';
		}
		var form = new FormData();
    	form.append("file", f);
		$.ajax({
			type:"post",
			url:"upload1.php",
			data:form,
			processData:false,
			contentType:false,
			success:function(data){
				if(data == 1){
					alert('上传成功');
				}
			}
		});
	}
</script>

upload1.php

<?php 
 
header("Content-Type:text/html;charset=UTF-8");
if(is_uploaded_file($_FILES['file']['tmp_name'])){
    move_uploaded_file($_FILES['file']['tmp_name'], "./drag_uploads/".iconv("UTF-8", "GBK", $_FILES['file']['name']));
    echo '1';
}
 
 ?>

可以到这里下载文件

https://github.com/SmallLeaves/drag-upload-image

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值