Skip to content

Commit

Permalink
v1.1版本发布
Browse files Browse the repository at this point in the history
  • Loading branch information
szvone committed Oct 8, 2018
1 parent 0791b23 commit 977b2ab
Show file tree
Hide file tree
Showing 5 changed files with 177 additions and 15 deletions.
23 changes: 19 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

超简Api图床 V1.0 —— 专为Api而生
超简Api图床 V1.1 —— 专为Api而生
===============


超简Api图床 V1.0 基于ThinPhP 5.1实现的一套Api图床程序,主要包含以下特色:
超简Api图床 V1.1 基于ThinkPHP 5.1实现的一套Api图床程序,主要包含以下特色:

+ 无数据库模式,简单配置,一键搭建
+ 第三方接口接入,不占用服务器空间
Expand All @@ -14,7 +14,7 @@
+ 通讯密钥过滤恶意上传
+ 支持跨域提交访问
+ 免费、开源

+ 支持简单返回,直接返回图片网址

> 超简Api图床的运行环境要求PHP5.6以上。
Expand All @@ -27,8 +27,10 @@
+ 默认通讯密钥为:123456
+ 保存配置后,即可开始使用

> 如果页面显示【超简图床 -- 为您提供Api服务!】,说明您的服务器默认配置的首页为index.php,请您访问localhost/public/index.html进入主页
> 升级说明:请您直接下载新版本覆盖旧版本即可!
> 如果页面显示【超简图床 -- 为您提供Api服务!】,说明您的服务器默认配置的首页为index.php,请您访问localhost/public/index.html进入主页
## 使用

+ 根据主页显示的Api接口,调用Api接口,将会返回对应的图片地址
Expand All @@ -40,6 +42,19 @@
+ https://blog.csdn.net/alen_xiaoxin/article/details/60783141
+ https://www.jb51.net/article/94061.htm

## 更新记录

+ v1.1(2018.10.08)
+ Api增加新参数onlyUrl,
+ 当onlyUrl为1时,如果上传成功,只返回图片链接,如果上传失败,则返回字符串 null
+ 当onlyUrl不为1或者不传入时,返回内容同v1.0版本,请参照Api文档
+ 增加开发者调用示例,请在SDK目录查看
+ 修复已知Bug


+ v1.0(2018.10.02)
+ 初版发布

## 版权信息

超简Api图床遵循 MIT License 开源协议发布,并提供免费使用。
Expand Down
129 changes: 129 additions & 0 deletions SDK/imgApiSdk.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@


import org.springframework.web.multipart.MultipartFile;
import sun.misc.BASE64Encoder;

import java.io.*;
import java.net.URL;
import java.net.URLConnection;

/**
* 超简图床JAVA版本SDK
*/
public class imgApiSdk {

/**
* 上传图片到超简图床
* @param apiUrl api地址,请在图床设置页面查看
* @param apiKey 通讯秘钥,请在图床设置页面查看
* @param file 表单的图片文件
* @return
*/
public static String uploadToImgApi(String apiUrl, String apiKey, MultipartFile file){
String base64 = null;
File f = null;
String res = null;
try {
f=File.createTempFile("tmp", null);
file.transferTo(f);
f.deleteOnExit(); //使用完成删除文件

FileInputStream inputFile = new FileInputStream(f);

byte[] buffer = new byte[(int) f.length()];
inputFile.read(buffer);
inputFile.close();
base64 = new BASE64Encoder().encode(buffer);
base64 = base64.replaceAll("[\\s*\t\n\r]", "");

String param = "key="+apiKey+"&onlyUrl=1&imgBase64="+getURLEncoderString(base64);


res = sendPost(apiUrl,param);



} catch (IOException e) {
e.printStackTrace();
}

return res;
}

/**
* 向指定 URL 发送POST方法的请求
*
* @param url
* 发送请求的 URL
* @param param
* 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
* @return 所代表远程资源的响应结果
*/
private static String sendPost(String url, String param) {
PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
// 设置通用的请求属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行
conn.setDoOutput(true);
conn.setDoInput(true);
// 获取URLConnection对象对应的输出流
out = new PrintWriter(conn.getOutputStream());
// 发送请求参数
out.print(param);
// flush输出流的缓冲
out.flush();
// 定义BufferedReader输入流来读取URL的响应
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!"+e);
e.printStackTrace();
}
//使用finally块来关闭输出流、输入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOException ex){
ex.printStackTrace();
}
}
return result;
}

/**
* URL编码
* @param str 需要编码的文本
* @return 编码后的文本
*/
private static String getURLEncoderString(String str) {
String result = "";
if (null == str) {
return "";
}
try {
result = java.net.URLEncoder.encode(str, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return result;
}
}
12 changes: 7 additions & 5 deletions application/index/controller/Index.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class Index
{
public function index()
{
return '超简图床 -- 为您提供Api服务!(您看到此页面说明您的服务器默认配置的首页为index.php,请您访问localhost/public/index.html进入项目主页)';
return '<script>window.location.href="index.html";</script>';
}


Expand All @@ -37,17 +37,19 @@ public function upImg(){
if ($type == 1){
//使用搜狗图床
$res = SougouApi::Upload();
return json($res);
}else if ($type == 2){
//使用新浪图床
$res = SinaApi::Upload();
return json($res);
}else if ($type == 3){
//使用新浪图床
$res = $this->upload();
return json($res);
}else{
return json(array("code"=>"-1","msg"=>"类型错误","img"=>null));
$res = array("code"=>"-1","msg"=>"类型错误","img"=>null);
}
if (input("onlyUrl")==1){
return $res['img'];
}else{
return json($res);
}


Expand Down
20 changes: 18 additions & 2 deletions public/api.html
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,14 @@ <h4 class="modal-title" style="color: black;">Api文档</h4>
<label class="sr-only" for="PostData">请求参数</label>
<div class="input-group">
<div class="input-group-addon">请求参数</div>
<input type="text" class="form-control" id="PostData" readonly value="key=后台设置的通讯密钥&imgBase64=图片的Base64编码">
<input type="text" class="form-control" id="PostData" readonly value="key=后台设置的通讯密钥&onlyUrl=0&imgBase64=图片的Base64编码">
</div>
</div>
<div class="form-group">
<label class="sr-only" for="PostData">参数说明</label>
<div class="input-group">
<div class="input-group-addon">参数说明</div>
<input type="text" class="form-control" id="PostDataInfo" readonly value="key=后台设置的通讯密钥,onlyUrl=(传入1为只返回图片网址,其他不返回,否则为返回详细json数据),imgBase64=图片的Base64编码">
</div>
</div>

Expand Down Expand Up @@ -391,15 +398,24 @@ <h4 class="modal-title" style="color: black;">Api文档</h4>

$("#outPut").val($("#outPut").val()+"发起Post请求...\n");

$("#outPut").val($("#outPut").val()+"请求返回:\n");


$.post(url,"key="+key+"&imgBase64="+encodeURIComponent(tmp[1]),function (data) {
$("#outPut").val($("#outPut").val()+"请求返回:\n");
$("#outPut").val($("#outPut").val()+JSON.stringify(data)+"\n");
$("#outPut").val($("#outPut").val()+"返回错误代码为:"+data.code+"(1为成功,2为失败)\n");
$("#outPut").val($("#outPut").val()+"返回接口信息为:"+data.msg+"(接口调用的详细信息)\n");
$("#outPut").val($("#outPut").val()+"返回图片链接为:"+data.img+"(成功返回图片链接,失败返回null)\n");

$("#outPut").val($("#outPut").val()+"若配置onlyUrl为1,则请求返回(仅有img字段,成功返回图片链接,失败返回null):\n");
$("#outPut").val($("#outPut").val()+data.img+"\n");

});





}
</script>
</body>
Expand Down
8 changes: 4 additions & 4 deletions public/setting.html
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ <h1 class="cover-heading">系统配置</h1>
<script src="https://lib.baomitu.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script>
function getConfig(){
$.post("index/index/getConfig",function (data) {
$.post("index.php/index/index/getConfig",function (data) {
if (data.code == 1){
$("#type").val(data.data.type);
$("#SinaUser").val(data.data.SinaUser);
Expand All @@ -134,7 +134,7 @@ <h1 class="cover-heading">系统配置</h1>
window.location.href = "index.html";
return;
}
$.post("index/index/login","pass="+pass,function (data) {
$.post("index.php/index/index/login","pass="+pass,function (data) {
if (data.code == 1){
alert(data.msg);
getConfig();
Expand All @@ -148,13 +148,13 @@ <h1 class="cover-heading">系统配置</h1>
function saveConfig() {
var data = "type="+$("#type").val()
+"&SinaUser="+$("#SinaUser").val()+"&SinaPass="+$("#SinaPass").val()+"&admin="+$("#admin").val()+"&key="+$("#key").val();
$.post("index/index/setConfig",data,function (data) {
$.post("index.php/index/index/setConfig",data,function (data) {
alert(data.msg);
})
}

function loginOut(){
$.post("index/index/loginOut",function (data) {
$.post("index.php/index/index/loginOut",function (data) {
alert(data.msg);
window.location.href = "index.html";
});
Expand Down

0 comments on commit 977b2ab

Please sign in to comment.