700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php 拖动多个文件上传 dropzone拖拽文件上传一次上传多个文件的方法

php 拖动多个文件上传 dropzone拖拽文件上传一次上传多个文件的方法

时间:2022-11-15 09:29:43

相关推荐

php 拖动多个文件上传 dropzone拖拽文件上传一次上传多个文件的方法

用dropzone插件拖拽文件上传默认情况是把一个文件拖到浏览器后就立即自动上传,参考前文《用dropzone插件拖拽文件上传》,如果需要一次上传多个文件怎么办?本文将介绍其实现方法。

dropzone一次上传多个文件

实例代码

把图片拖到下面进行上传

Upload

$(document).ready(function () {

Dropzone.options.form1 = {

//禁止自动提交上传autoProcessQueue: false,

//一次最多上传文件数parallelUploads: 10,

maxFiles: 10,

//文件最大体积

maxFilesize: 0.5, //单位:MB

//限制文件类型

acceptedFiles: ".jpg, .jpeg, .png, .gif, .pdf",

//删除按钮

addRemoveLinks: true,

init: function (e) {

var myDropzone = this;

$('#btn_upload').on("click", function() {

myDropzone.processQueue(); // Tell Dropzone to process all queued files.

});

// Event to send your custom data to your server

myDropzone.on("sending", function(file, xhr, data) {

// First param is the variable name used server side

// Second param is the value, you can add what you what

// Here I added an input value

//data.append("your_variable", $('#your_input').val());

});

}

};

});

后台上传程序使用php实现,代码如下:

if (!empty($_FILES)) {

if(is_array($data)){

foreach($_FILES['file']['tmp_name'] as $key => $value) {

$tempFile = $_FILES['file']['tmp_name'][$key];

$targetFile = $_FILES['file']['name'][$key];

move_uploaded_file($tempFile,$targetFile);

}

}

else{

$tempFile = $_FILES['file']['tmp_name'];

$targetFile = $_FILES['file']['name'];

move_uploaded_file($tempFile,$targetFile);

}

}

?>

代码解释

1、使用插件

需要用到jquery库文件,我们可直接用百度的cdn公共库文件。

其次使用插件dropzone.js,注意文件路径写正确。

2、html代码

添加一个form标签,和一个button标签。

form标签的action是上传文件的后台程序。button是需要点击的“上传”按钮。

Upload

3、jquery代码

$(document).ready(function () {

Dropzone.options.form1 = {

//禁止自动提交上传autoProcessQueue: false,

//一次最多上传文件数

parallelUploads: 10,

maxFiles: 10,

//文件最大体积maxFilesize: 0.5, //单位:MB

//限制文件类型acceptedFiles: ".jpg, .jpeg, .png, .gif, .pdf",

//删除按钮

addRemoveLinks: true,

init: function (e) {

var myDropzone = this;

$('#btn_upload').on("click", function() {

myDropzone.processQueue(); // Tell Dropzone to process all queued files.

});

// Event to send your custom data to your server

myDropzone.on("sending", function(file, xhr, data) {

// First param is the variable name used server side

// Second param is the value, you can add what you what

// Here I added an input value

//data.append("your_variable", $('#your_input').val());

});

}

};

});

多文件上传,主要是用到参数parallelUploads和maxFiles,如果没有这两个参数,则默认是最多一次上传2个文件。

这里注意Dropzone.options.form1中的form1是html代码里的form标签的id名称。btn_upload是html代码里的button标签按钮的id名称。

4、php程序

需要明白多文件上传时多个文件是一个数组,所以后台程序要视作接收一个数组来处理,if(is_array($data))就是判断接收的数据是否数组,如果只上传一个文件,则不是数组。

注意问题

dropzone插件不支持上传文件名含中文字符。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。