static/ 0000755 0000000 0000000 00000000000 13672347372 011061 5 ustar root root static/view/ 0000755 0000000 0000000 00000000000 13672347371 012032 5 ustar root root static/view/nav.html 0000755 0000000 0000000 00000002000 13672354401 013467 0 ustar root root static/view/foot.html 0000755 0000000 0000000 00000001025 13672355075 013670 0 ustar root root
static/view/head.html 0000755 0000000 0000000 00000003054 13672354373 013626 0 ustar root root static/common/ 0000755 0000000 0000000 00000000000 13672347372 012351 5 ustar root root static/common/spop/ 0000755 0000000 0000000 00000000000 13672347372 013332 5 ustar root root static/common/spop/spop.min.js 0000755 0000000 0000000 00000007440 13672350744 015440 0 ustar root root ! function () { "use strict"; function t(t, o) { return "string" == typeof t ? (o || document).getElementById(t) : t || null } function o(t, o) { t.classList ? t.classList.remove(o) : t.className = t.className.replace(new RegExp("(^|\\b)" + o.split(" ").join("|") + "(\\b|$)", "gi"), " ") } function e(t, o) { for (var e in o) o.hasOwnProperty(e) && (t[e] = o[e]); return t } var s, i, p, n, r, c, l, h, a = 390, u = function (o, p) { if (this.defaults = { template: null, style: "info", autoclose: !1, position: "top-right", icon: !0, group: !1, onOpen: !1, onClose: !1 }, i = e(this.defaults, spop.defaults), "string" == typeof o || "string" == typeof p) s = { template: o, style: p || i.style }; else { if ("object" != typeof o) return console.error("Invalid arguments."), !1; s = o } this.opt = e(i, s), t("spop--" + this.opt.group) && this.remove(t("spop--" + this.opt.group)), this.open() }; u.prototype.create = function (o) { p = t(this.getPosition("spop--", this.opt.position)), n = this.opt.icon ? '' : "", r = '
' + n + '
", p || (this.popContainer = document.createElement("div"), this.popContainer.setAttribute("class", "spop-container " + this.getPosition("spop--", this.opt.position)), this.popContainer.setAttribute("id", this.getPosition("spop--", this.opt.position)), document.body.appendChild(this.popContainer), p = t(this.getPosition("spop--", this.opt.position))), this.pop = document.createElement("div"), this.pop.setAttribute("class", "spop spop--out spop--in " + this.getStyle("spop--", this.opt.style)), this.opt.group && "string" == typeof this.opt.group && this.pop.setAttribute("id", "spop--" + this.opt.group), this.pop.setAttribute("role", "alert"), this.pop.innerHTML = r, p.appendChild(this.pop) }, u.prototype.getStyle = function (t, o) { return c = { success: "success", error: "error", warning: "warning" }, t + (c[o] || "info") }, u.prototype.getPosition = function (t, o) { return l = { "top-left": "top-left", "top-center": "top-center", "top-right": "top-right", "bottom-left": "bottom-left", "bottom-center": "bottom-center", "bottom-right": "bottom-right" }, t + (l[o] || "top-right") }, u.prototype.open = function () { this.create(this.opt.template), this.opt.onOpen && this.opt.onOpen(), this.close() }, u.prototype.close = function () { this.opt.autoclose && "number" == typeof this.opt.autoclose && (this.autocloseTimer = setTimeout(this.remove.bind(this, this.pop), this.opt.autoclose)), this.pop.addEventListener("click", this.addListeners.bind(this), !1) }, u.prototype.addListeners = function (t) { h = t.target.getAttribute("data-spop"), "close" === h && (this.autocloseTimer && clearTimeout(this.autocloseTimer), this.remove(this.pop)) }, u.prototype.remove = function (t) { this.opt.onClose && this.opt.onClose(), o(t, "spop--in"), setTimeout(function () { document.body.contains(t) && t.parentNode.removeChild(t) }, a) }, window.spop = function (t, o) { return t && window.addEventListener ? new u(t, o) : !1 }, spop.defaults = {} }(); static/common/spop/spop.min.css 0000755 0000000 0000000 00000011706 13672347372 015617 0 ustar root root @charset "UTF-8"; /** *Name 乘风图床系统 *Author 乘风 *All rights reserved 乘风 *Time 2020 - 3 - 18 22:30 *二改转载请务必保留原作者版权 */ spop-container{z-index:2000;position:fixed}.spop-container,.spop-container *,.spop-container :after,.spop-container :before{box-sizing:border-box}.spop--top-left{top:0;left:0}.spop--top-left .spop{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}.spop--top-center{top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.spop--top-center .spop{-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.spop--top-right{top:0;right:0}.spop--top-right .spop{-webkit-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.spop--center{top:50%;left:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.spop--center .spop{-webkit-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0}.spop--bottom-left{bottom:0;left:0}.spop--bottom-left .spop{-webkit-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%}.spop--bottom-center{bottom:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.spop--bottom-center .spop{-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.spop--bottom-right{bottom:0;right:0}.spop--bottom-right .spop{-webkit-transform-origin:100% 100%;-ms-transform-origin:100% 100%;transform-origin:100% 100%}@media screen and (max-width:30em){.spop--bottom-center,.spop--bottom-left,.spop--bottom-right,.spop--top-center,.spop--top-left,.spop--top-right{top:auto;bottom:0;left:0;right:0;margin-left:0;-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.spop--bottom-center .spop,.spop--bottom-left .spop,.spop--bottom-right .spop,.spop--top-center .spop,.spop--top-left .spop,.spop--top-right .spop{-webkit-transform-origin:50% 100%;-ms-transform-origin:50% 100%;transform-origin:50% 100%}.spop{border-bottom:1px solid rgba(0,0,0,.15)}}.spop{position:relative;min-height:56px;line-height:1.25;font-size:14px;-webkit-transform:translateZ(0);transform:translateZ(0)}@media screen and (min-width:30em){.spop{border-radius:2px;width:320px;margin:.7em}}.spop--error,.spop--info,.spop--success,.spop--warning{color:#fff;background-color:#454A56}@-webkit-keyframes spopIn{0%{-webkit-transform:scale(.2,.2);transform:scale(.2,.2)}95%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{-webkit-transform:scale(1,1);transform:scale(1,1)}}@keyframes spopIn{0%{-webkit-transform:scale(.2,.2);transform:scale(.2,.2)}95%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{-webkit-transform:scale(1,1);transform:scale(1,1)}}@-webkit-keyframes spopOut{0%{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1)}20%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{opacity:0;-webkit-transform:scale(0,0);transform:scale(0,0)}}@keyframes spopOut{0%{opacity:1;-webkit-transform:scale(1,1);transform:scale(1,1)}20%{-webkit-transform:scale(1.1,1.1);transform:scale(1.1,1.1)}100%{opacity:0;-webkit-transform:scale(0,0);transform:scale(0,0)}}.spop--out{-webkit-animation:spopOut .4s ease-in-out;animation:spopOut .4s ease-in-out}.spop--in{-webkit-animation:spopIn .4s ease-in-out;animation:spopIn .4s ease-in-out}.spop-body{padding:1.4em}.spop-body p{margin:0}.spop-body a{color:#fff;text-decoration:underline}.spop-body a:hover{color:rgba(255,255,255,.8);text-decoration:none}.spop-title{margin-top:0;margin-bottom:.25em;color:#fff}.spop-close{position:absolute;right:0;top:0;height:32px;width:32px;padding-top:7px;padding-right:7px;font-size:22px;font-weight:700;text-align:right;line-height:.6;color:#fff;opacity:.5}.spop-close:hover{opacity:.7;cursor:pointer}.spop-icon{position:absolute;top:13px;left:16px;width:30px;height:30px;border-radius:50%;-webkit-animation:spopIn .4s .4s ease-in-out;animation:spopIn .4s .4s ease-in-out}.spop-icon:after,.spop-icon:before{content:"";position:absolute;display:block}.spop-icon+.spop-body{padding-left:4.2em}.spop-icon--error,.spop-icon--info{border:2px solid #3a95ed}.spop-icon--error:before,.spop-icon--info:before{top:5px;left:11px;width:4px;height:4px;background-color:#3a95ed}.spop-icon--error:after,.spop-icon--info:after{top:12px;left:11px;width:4px;height:9px;background-color:#3a95ed}.spop-icon--error{border-color:#ff5656}.spop-icon--error:before{top:16px;background-color:#ff5656}.spop-icon--error:after{top:5px;background-color:#ff5656}.spop-icon--success{border:2px solid #2ecc54}.spop-icon--success:before{top:7px;left:7px;width:13px;height:8px;border-bottom:3px solid #2ecc54;border-left:3px solid #2ecc54;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.spop-icon--warning{border:2px solid #fcd000}.spop-icon--warning:before{top:7px;left:7px;width:0;height:0;border-style:solid;border-color:transparent transparent #fcd000;border-width:0 6px 10px} static/js/ 0000755 0000000 0000000 00000000000 13672347372 011475 5 ustar root root static/js/upload.js 0000755 0000000 0000000 00000010563 13672354120 013314 0 ustar root root "use strict"; function fileinput() { $("#chengfeng").fileinput({ language: "en", theme: "fas", previewFileType: "image", uploadUrl: "upload.php", uploadExtraData: function (t) { function e(e, s) { return t.apply(this, arguments) } return e.toString = function () { return t.toString() }, e }(function (t, e) { return uploadExtraData() }), allowedFileExtensions: ["jpeg", "jpg", "png", "gif", "ico"], overwriteInitial: !1, showClose: !1, maxFileSize: 5120, maxFileCount: 10, uploadAsync: !0, browseClass: "btn btn-secondary", browseLabel: "Select picture", removeClass: "btn btn-danger", removeLabel: "Delete", uploadClass: "btn btn-info", uploadLabel: "Upload", dropZoneTitle: "yuka_Api" }).on("fileuploaded", function (t, e, s, o) { var a = (e.form, e.files, e.extra, e.response); e.reader; if ("200" == a.code) { $("showurl").css("display") || a.data.url && $("#showurl").show(); var r = a.data.url, o = 0; // for (var i in r) // if (1 == ++o) var n = '
', l = '
'; // p = '
', // c = '
', // d = '
'; // else // n = n + '
', l = l + '
', p = p + '
', c = c + '
', d = d + '
'; n = n + '
", l += "",$("#urlcodes").append(n) // $("#htmlcodes").append(l) } else spop({ template: a.msg, autoclose: spopTimeOut, style: "error", position: "top-center" }) }) } fileinput(); static/js/main.js 0000755 0000000 0000000 00000004366 13672353250 012763 0 ustar root root "use strict"; function uploadBlobFile(e) { var t = $("#chengfeng"); Swal.fire({ type: "warning", title: "上传", text: "是否上传粘贴板图片?", confirmButtonText: "确定", showCancelButton: !0, cancelButtonText: "取消", focusCancel: !0 }).then(function (a) { a.value ? (t.fileinput("readFiles", e), spop({ template: "已添加到上传列表", autoclose: spopTimeOut, style: "success" })) : Swal.close() }) } function generateFileId(e) { if (!e) return null; var t = String(e.relativePath || e.webkitRelativePath || $h.getFileName(e) || null); return t ? e.size + "_" + t.replace(/\s/gim, "_") : null } $(function () { $(".navbar-nav").find("li").each(function () { var e = $(this).find("a:first")[0]; $(e).attr("href") === location.pathname ? $(this).addClass("active") : $(this).removeClass("active") }) }); var spopTimeOut = 3e3, clip = function (e) { var t = document.createRange(); t.selectNodeContents(e); var a = window.getSelection(); a.removeAllRanges(), a.addRange(t) }; window.console && window.console.log && console.log("%c YukaApi %c api.nikolatesla.top ", "color: #fff; margin: 1em 0; padding: 5px 0; background: #1abc9c;", "margin: 1em 0; padding: 5px 0; background: #efefef;"), document.addEventListener("paste", function (e) { if (e.clipboardData || e.originalEvent) { var t = e.clipboardData || e.originalEvent.clipboardData; if (t.items) { var a = t.items, n = a.length, i = null; !0, e.preventDefault(); for (var l = [], o = 0; o < n; o++) - 1 !== a[o].type.indexOf("image") && (i = a[o].getAsFile(), l.push(i)); if (l.length > 0 && uploadBlobFile(l), null !== i) { (new FileReader).onload = function (e) { e.target.result } } } } }); var uploadExtraData = function () { var e = []; return $("input[name='apitype']:checked").each(function () { e.push($(this).val()) }), { apitype: e } }; static/css/ 0000755 0000000 0000000 00000000000 13672347372 011651 5 ustar root root static/css/style.css 0000755 0000000 0000000 00000001514 13672347372 013527 0 ustar root root /** *Name 乘风图床系统 *Author 乘风 *All rights reserved 乘风 *Time 2020 - 3 - 18 22:30 *二改转载请务必保留原作者版权 */.chengfeng-imageucode-cover,.chengfeng-imageucode-cover img{width:100px;height:100px}.page-header h1{text-shadow:-5px 5px 0 rgba(0,0,0,.1)}.chengfeng-main{margin-top:2em}.navbar-brand{color:#fff !important}pre{white-space:pre-wrap;word-wrap:break-word}.chengfeng-imageucode-tip{font-size:11px}.layui-form-label{width:auto}.footer{padding:3em 0 2em;text-align:center}.chengfeng-api-tips{font-weight:bold}.chengfeng-table-small{max-width:50%}.image-container{text-align:center}.image-size-container span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:0;max-width:15rem}.image-src img{margin:auto;align-items:center}.image-src a{display:flex;align-items:center;min-height:300px} api.php 0000755 0001750 0001750 00000012762 13672354712 010617 0 ustar www www
功能 | 接口 |
---|---|
请求方式 | POST |
URL | /api/upload |
请求参数
参数名称 | 类型 | 是否必须 | 说明 |
---|---|---|---|
chengfenfimage | File | 是 | 表单名称 |
apitype | String | 是 | 上传的图床类型(Ali、Vim_Cn等等) |
图床类型参数
图床类型 | 唯一标识 |
---|---|
合从 | hecong |
58同城 | 58 |
稿定网 | gd |
中关村 | zol |
响应参数
参数名称 | 类型 | 实例值 | 说明 |
code | Number | 200 | 状态码,成功返回200,失败返回500 |
msg | String | success | 提示信息 |
data | array|object |
|
获取的图片链接数据 |
正确响应示例
{
"code":200,
"msg":"success",
"data":{
"url":"https://st-gdx.dancf.com/matting/clip/20200617-111510-5898.jpg"
}
}