FastAdmin又拍云插件第三版,支持多文件上传

2024-05-10 09:18

本文主要是介绍FastAdmin又拍云插件第三版,支持多文件上传,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JS代码

/*
又拍云插件--Power by Andiff  weixin:17191079694 QQ:165607361*/
(function (factory) {if (typeof define === 'function' && define.amd) {// AMD. Register as anonymous module.define(['jquery'], factory);} else if (typeof exports === 'object') {// Node / CommonJSfactory(require('jquery'));} else {// Browser globals.factory(jQuery);}
})(function ($) {'use strict';//常量var UPYUNURL = 'https://v0.api.upyun.com/andiffnet1';   //这里是又拍云请求地址//上传接口地址var BUCKET = 'andiffnet1';//Bucketvar FORMAPI = 'R1aPnbtDDGDwt+3xp+RGnsbFVq1RQ=';//formapivar SAVEPATH = 'ren';//保存文件的文件夹var URL = '/api/upyunupload/rentoupyun?savepath=';  //这里是控制器请求地址var ONLINEURL = 'https://qd.andiff.net/'; //这里换成你的又拍云地址var upyun = {//类似朋友圈上传多张图片uploadPicsByAjax:function(index,ul,dir){$.getJSON(URL+dir, function (data) {var uploadData = new FormData();uploadData.append('file', $('#files'+index)[0].files[0]);uploadData.append('policy', data.policy);uploadData.append('authorization', data.authorization);$.ajax({url: UPYUNURL,type: 'POST',data: uploadData,cache: false,processData: false,contentType: false,}).done(function(data, textStatus) {//alert(JSON.stringify(data));var body = jQuery.parseJSON(data);var img = '<img width="100%" src="'+ONLINEURL+body.url+'" />';img = img + '<img class="imgcommon" src="/images/cha.png" />';img = img + '<input type="hidden" name="row[picurl][]" value="'+body.url+'" />';img = img + '<span><input class="form-control" name="row[listorder][]" type="text" value="1" placeholder="顺序" /></span>';$("#"+ul+" li").eq(index).html(img);}).fail(function(res, textStatus, error) {try {var body = JSON.parse(res.responseText);alert('error: ' + body.message);} catch(e) {console.error(e);}});});},//普通的上传图片文件uploadByAjax: function (file1,show1,dir) {var filename = '';var fileextname = '';if(typeof($('#'+file1)[0].files[0].name)!='undefined'){filename = $('#'+file1)[0].files[0].name;fileextname = filename.split('.')[1];}var multiple = $('#'+file1).data('multiple');var arry = $('#'+file1).attr("accept").split(',');var inarray = $.inArray('.'+fileextname, arry);if(inarray==-1){alert('请上传'+arry.join()+'文件');return;}$.getJSON(URL+dir+'&ext='+fileextname, function (data) {var uploadData = new FormData();uploadData.append('file', $('#'+file1)[0].files[0]);uploadData.append('policy', data.policy);uploadData.append('authorization', data.authorization);$.ajax({url: UPYUNURL,type: 'POST',data: uploadData,cache: false,processData: false,contentType: false,}).done(function(data, textStatus) {var body = jQuery.parseJSON(data);if(multiple==true){var s = $("#"+show1).val();if(s==''){$("#"+show1).val(body.url);}else{$("#"+show1).val(s+','+body.url);}                        }else{$("#"+show1).val(body.url);}                   if(typeof($('#'+file1).attr("previewid"))!='undefined'){var preid = $('#'+file1).attr("previewid");var str = '';if(multiple==true){//多选str = str + $("#"+preid).html();}                       str = str + '<li class="col-xs-3">';str = str + '<a href="'+ONLINEURL+body.url+'" data-url="'+ONLINEURL+body.url+'" target="_blank" class="thumbnail">';str = str + '<img src="'+ONLINEURL+body.url+'" class="img-responsive" /></a>';str = str + '<a href="javascript:;" class="btn btn-danger btn-xs btn-trash"><i class="fa fa-trash"></i></a>';str = str + '</li>';$("#"+preid).html(str);}$(document).on("click", "#" + preid + " .btn-trash", function () {var url = $(this).prev().attr('href').replace(ONLINEURL,"");                        var arry = $("#"+show1).val().split(',');var ss = '';for (var i = arry.length - 1; i >= 0; i--) {if(arry[i]!=url){ss = ss + arry[i] + ',';}}$("#"+show1).val(ss.substr(0,ss.length-1));$(this).closest("li").remove();});}).fail(function(res, textStatus, error) {try {var body = JSON.parse(res.responseText);alert('error: ' + body.message);} catch(e) {console.error(e);}});});},//summernote文字编辑器里面上传图片uploadForSummerNote: function (file1,show1) {$.getJSON(URL+'summernote', function (data) {var uploadData = new FormData();uploadData.append("file", file1);uploadData.append('policy', data.policy);uploadData.append('authorization', data.authorization);$.ajax({url: UPYUNURL,type: 'POST',data: uploadData,cache: false,processData: false,contentType: false,}).done(function(data, textStatus) {var body = jQuery.parseJSON(data);$("#"+show1).summernote('insertImage', ONLINEURL+body.url, 'image name');}).fail(function(res, textStatus, error) {try {var body = JSON.parse(res.responseText);alert('error: ' + body.message);} catch(e) {console.error(e);}});});},};return upyun;
});

HTML代码:

<div class="col-xs-12 col-sm-8"><div class="input-group"><input id="c-cdnimg" class="form-control" name="row[cdnimg]" type="text" value="" /><div class="input-group-addon no-border no-padding"><span><button type="button" id="plupload-imagecdnimg" class="btn btn-danger" data-input-id="c-cdnimg"><i class="fa fa-upload"></i>上传</button><div class="moxie-shim-html5"><input id="upyun_uploadcdnimg" class="upyun_upload" type="file" accept=".gif,.jpg,.jpeg,.tiff" tabindex="-1" previewid="p-cdnimg"  data-multiple="true"/></div></span></div><span class="msg-box n-right"></span></div><ul class="row list-inline plupload-preview" id="p-cdnimg"></ul> 
</div>

data-multiple="true" , 代表一次上传多张,其他代表一次上传一张。

调用代码:

$("#upyun_uploadcdnimg").bind('change',function(){UpYun.uploadByAjax('upyun_uploadcdnimg','c-cdnimg','andiffnet/test');
});

 

 

这篇关于FastAdmin又拍云插件第三版,支持多文件上传的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/976029

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

SpringBoot+RustFS 实现文件切片极速上传的实例代码

《SpringBoot+RustFS实现文件切片极速上传的实例代码》本文介绍利用SpringBoot和RustFS构建高性能文件切片上传系统,实现大文件秒传、断点续传和分片上传等功能,具有一定的参考... 目录一、为什么选择 RustFS + SpringBoot?二、环境准备与部署2.1 安装 RustF

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

RabbitMQ 延时队列插件安装与使用示例详解(基于 Delayed Message Plugin)

《RabbitMQ延时队列插件安装与使用示例详解(基于DelayedMessagePlugin)》本文详解RabbitMQ通过安装rabbitmq_delayed_message_exchan... 目录 一、什么是 RabbitMQ 延时队列? 二、安装前准备✅ RabbitMQ 环境要求 三、安装延时队

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

Spring Boot 结合 WxJava 实现文章上传微信公众号草稿箱与群发

《SpringBoot结合WxJava实现文章上传微信公众号草稿箱与群发》本文将详细介绍如何使用SpringBoot框架结合WxJava开发工具包,实现文章上传到微信公众号草稿箱以及群发功能,... 目录一、项目环境准备1.1 开发环境1.2 微信公众号准备二、Spring Boot 项目搭建2.1 创建

java使用protobuf-maven-plugin的插件编译proto文件详解

《java使用protobuf-maven-plugin的插件编译proto文件详解》:本文主要介绍java使用protobuf-maven-plugin的插件编译proto文件,具有很好的参考价... 目录protobuf文件作为数据传输和存储的协议主要介绍在Java使用maven编译proto文件的插件

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手