Javascript 如何使用拖放功能上载多个文件&;使用ajax拖放和浏览
如何使用ajax通过拖放和浏览上传多个文件? 下面的代码是我目前所拥有的代码,非常有效,但只允许上传1个文件: 这是html:Javascript 如何使用拖放功能上载多个文件&;使用ajax拖放和浏览,javascript,php,jquery,ajax,file-upload,Javascript,Php,Jquery,Ajax,File Upload,如何使用ajax通过拖放和浏览上传多个文件? 下面的代码是我目前所拥有的代码,非常有效,但只允许上传1个文件: 这是html: <div id="drop_file_zone" ondrop="upload_file(event)" ondragover="return false"> <div id="drag_upload_file"> <p>DROP FILE HERE</p> <p>o
<div id="drop_file_zone" ondrop="upload_file(event)" ondragover="return false">
<div id="drag_upload_file">
<p>DROP FILE HERE</p>
<p>or</p>
<p><input class="browse" type="button" value="Browse" onclick="file_explorer();"></p>
<input type="file" id="selectfile">
</div>
</div>
以及用于上传的php:
$arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];
if (!(in_array($_FILES['file']['type'], $arr_file_types))) {
echo "false";
return;
}
move_uploaded_file($_FILES['file']['tmp_name'], '../uploads/'. $_FILES['file']['name']);
echo "File uploaded successfully.<br /><br />";
$arr_文件类型=['image/png'、'image/gif'、'image/jpg'、'image/jpeg'];
if(!(在数组中($文件['file']['type'],$arr\u文件类型))){
呼应“假”;
返回;
}
移动上传的文件($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
echo“文件上传成功。
”;
您似乎只获得了第一个上载“e.dataTransfer.files[0]”的文件。尝试更改为:
function upload_file(e) {
e.preventDefault();
//here you can get all files
for (var i=0; i< e.dataTransfer.files.length;i++){
fileobj = e.dataTransfer.files[i];
ajax_file_upload(fileobj);
}
}
函数上传_文件(e){
e、 预防默认值();
//在这里你可以得到所有的文件
对于(var i=0;i
对于浏览,我想同样的逻辑是有效的
function file_explorer() {
document.getElementById('selectfile').click();
document.getElementById('selectfile').onchange = function() {
//here you can get all files
for (var i=0; i< e.dataTransfer.files.length;i++){
fileobj = document.getElementById('selectfile').files[i];
ajax_file_upload(fileobj);
}
};
}
函数文件\u explorer(){
document.getElementById('selectfile')。单击();
document.getElementById('selectfile')。onchange=function(){
//在这里你可以得到所有的文件
对于(var i=0;i
如果导航不起作用,您可以尝试使用event.target到达您的元素这对拖放操作非常有效!。但在浏览时不起作用。那么我怎么才能做到呢?你可以用同样的逻辑,我会更新我的答案。不幸的是,我不能用这个代码上传任何文件了。顺便说一句,Darag&drop很好用
function file_explorer() {
document.getElementById('selectfile').click();
document.getElementById('selectfile').onchange = function() {
//here you can get all files
for (var i=0; i< e.dataTransfer.files.length;i++){
fileobj = document.getElementById('selectfile').files[i];
ajax_file_upload(fileobj);
}
};
}