要实现限制uploadify上传个数的功能,我们可以使用uploadify插件提供的maxQueueSize属性。以下是具体步骤:
- 在html文件中引入jquery和uploadify的js和css文件。可以使用CDN链接或者本地文件路径,例如:
<link rel="stylesheet" type="text/css" href="https://cdn.bootcdn.net/ajax/libs/uploadify/3.2.1/uploadify.css">
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/uploadify/3.2.1/jquery.uploadify.js"></script>
- 初始化uploadify插件,并设置maxQueueSize属性。例如,设置上传队列最大数量为3:
$('#file_upload').uploadify({
'swf' : 'uploadify.swf',
'uploader' : 'uploadify.php',
'buttonText' : '选择文件',
'fileTypeDesc' : 'Image Files',
'fileTypeExts' : '*.jpg;*.png',
'multi' : true,
'maxQueueSize' : 3, // 设置上传队列最大数量为3
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
console.log('The file ' + file.name + ' could not be uploaded: ' + errorString);
}
});
- 可以通过onUploadError回调函数来处理超出上传队列最大数量的文件,例如:
$('#file_upload').uploadify({
// ...其他配置...
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
console.log('The file ' + file.name + ' could not be uploaded: ' + errorString);
if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED
|| errorCode == SWFUpload.UPLOAD_ERROR.FILE_STOPPED) {
// 如果是用户取消或者停止上传,则不处理
return;
} else {
// 超出队列数量限制的文件从上传队列中删除
$('#' + file.id).remove();
}
}
});
通过上述配置,我们就可以实现限制uploadify上传个数的功能了。
下面是两个具体的示例:
示例1:使用默认上传按钮
<input type="file" name="file_upload" id="file_upload" />
<script>
$(function() {
$('#file_upload').uploadify({
'swf' : 'uploadify.swf',
'uploader' : 'uploadify.php',
'fileTypeDesc' : 'Image Files',
'fileTypeExts' : '*.jpg;*.png',
'multi' : true,
'maxQueueSize' : 3,
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
console.log('The file ' + file.name + ' could not be uploaded: ' + errorString);
if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED
|| errorCode == SWFUpload.UPLOAD_ERROR.FILE_STOPPED) {
// 如果是用户取消或者停止上传,则不处理
return;
} else {
// 超出队列数量限制的文件从上传队列中删除
$('#' + file.id).remove();
}
}
});
});
</script>
示例2:使用自定义按钮
<div class="upload-btn">上传文件</div>
<input type="file" name="file_upload" id="file_upload" style="display:none" />
<script>
$(function() {
$('.upload-btn').click(function() {
$('#file_upload').click();
});
$('#file_upload').uploadify({
'swf' : 'uploadify.swf',
'uploader' : 'uploadify.php',
'fileTypeDesc' : 'Image Files',
'fileTypeExts' : '*.jpg;*.png',
'multi' : true,
'maxQueueSize' : 3,
'onUploadError' : function(file, errorCode, errorMsg, errorString) {
console.log('The file ' + file.name + ' could not be uploaded: ' + errorString);
if (errorCode == SWFUpload.UPLOAD_ERROR.FILE_CANCELLED
|| errorCode == SWFUpload.UPLOAD_ERROR.FILE_STOPPED) {
// 如果是用户取消或者停止上传,则不处理
return;
} else {
// 超出队列数量限制的文件从上传队列中删除
$('#' + file.id).remove();
}
}
});
});
</script>
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:简单实现限制uploadify上传个数 - Python技术站