文件拖拽不用ajax,ajax简单实现拖拽上传文件

码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210、210既

210

之意。

AJAX拖拽上传功能实现,供大家参考,具体内容如下

html>

Document

.box {

width: 300px;

height: 300px;

border: 1px solid #000;

text-align: center;

line-height: 300px;

font-size: 40px;

}

+

var box = document.querySelector('.box');

box.ondragover = function (e) {

e.preventDefault();

}

box.ondrop = function (e) {

console.log(e.dataTransfer)

e.preventDefault();

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function () {

if (xhr.readyState == 4 && xhr.status == 200) {

console.log(xhr.responseText)

}

}

xhr.open('POST', './server.php', true);

var formdata = new FormData();

formdata.append('pic', e.dataTransfer.files[0]);

formdata.append('name', 'luyao');

xhr.send(formdata);

}

server.php

$rand = rand(1,1000).'.jpg';

move_uploaded_file($_FILES['pic']['tmp_name'], './uploads/'.$rand);

echo '/uploads/'.$rand;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现粘贴或拖拽上传文件,你可以使用HTML和JavaScript来完成。下面是一个简单的示例代码: HTML部分: ```html <div id="drop-area"> <div class="drop-message">将文件拖拽到此处或点击选择文件</div> <input type="file" id="file-input" multiple> </div> ``` CSS部分: ```css #drop-area { width: 300px; height: 200px; border: 2px dashed #ccc; text-align: center; padding: 40px; margin: 20px auto; } .drop-message { font-size: 18px; color: #999; } #drop-area.dragover { border-color: #000; } ``` JavaScript部分: ```javascript // 获取相关的元素 var dropArea = document.getElementById('drop-area'); var fileInput = document.getElementById('file-input'); // 阻止默认的拖拽事件 ['dragenter', 'dragover', 'dragleave', 'drop'].forEach(eventName => { dropArea.addEventListener(eventName, preventDefaults, false); }); function preventDefaults(e) { e.preventDefault(); e.stopPropagation(); } // 添加拖拽样式 ['dragenter', 'dragover'].forEach(eventName => { dropArea.addEventListener(eventName, highlight, false); }); ['dragleave', 'drop'].forEach(eventName => { dropArea.addEventListener(eventName, unhighlight, false); }); function highlight(e) { dropArea.classList.add('dragover'); } function unhighlight(e) { dropArea.classList.remove('dragover'); } // 处理文件上传 dropArea.addEventListener('drop', handleDrop, false); function handleDrop(e) { var files = e.dataTransfer.files; handleFiles(files); } fileInput.addEventListener('change', handleFiles, false); function handleFiles(files) { for (var i = 0; i < files.length; i++) { uploadFile(files[i]); } } function uploadFile(file) { var formData = new FormData(); formData.append('file', file); // 在这里执行上传文件的逻辑,例如使用Ajax发送formData到服务器 // 这里只是一个简单的示例,你需要根据实际情况进行修改 var xhr = new XMLHttpRequest(); xhr.open('POST', '/upload', true); xhr.onload = function() { if (xhr.status === 200) { console.log('文件上传成功!'); } else { console.error('文件上传失败!'); } }; xhr.send(formData); } ``` 以上代码实现了一个简单拖拽或粘贴上传文件的功能。当用户将文件拖拽到指定区域时,或者点击选择文件按钮选择文件后,会触发对应的事件处理函数。你可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值