切换风格

默认晚霞 雪山 粉色心情 伦敦 花卉 绿野仙踪 加州 白云 星空 薰衣草 城市 简约黑色 简约米色 龙珠
回复 0

3704

主题

3704

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
12322
教你怎么用图床Api做个属于自己的图床[复制链接]
发表于 2022-6-19 21:01:12 | 显示全部楼层 |阅读模式
>昨天的文章,我们只做到了:
>
>获得复制的图片,但是并没有做到上传,所以,今天就做上传。
##Start
先新建一个页面
由于粘贴上传的操作都是在JavaScript里面完成的,所以只需要写JavaScript即可
对了,由于上传需要进行Ajax所以我们导入jquery。
###导入jquery
<scriptsrc="https://code.jquery.com/jquery-3.6.0.min.js"></script>
复制代码
###全局粘贴事件
先写事件:
<body>
//1.导入jquery
<scriptsrc="https://code.jquery.com/jquery-3.6.0.min.js"></script>
//写JavaScript
<script>
//2.写全局粘贴事件
$('html').on('paste',function(){
});
</script>
</body>
复制代码
###获取文件并打印
然后在写获取文件并打印。
<body>
//1.导入jquery
<scriptsrc="https://code.jquery.com/jquery-3.6.0.min.js"></script>
//写JavaScript
<script>
//2.写全局粘贴事件
$('html').on('paste',function(e){
//3.获取文件并打印
varfil=event.clipboardData.items[0].getAsFile();
console.log(fil);
});
</script>
</body>
复制代码
###新建构造函数
未出现问题,然后就是上传了,新建构造函数`FormData`并把获取到的文件放进去:
//1.导入jquery
<scriptsrc="https://code.jquery.com/jquery-3.6.0.min.js"></script>
//写JavaScript
<script>
//2.写全局粘贴事件
$('html').on('paste',function(e){
//3.获取文件并打印
varfil=event.clipboardData.items[0].getAsFile();
console.log(fil);
//4.新建构造函数,存到data中
vardata=newFormData();
//4.1把fil放到data里面去
data.append("image",fil);
});
</script>
复制代码
###发起Ajax请求上传
然后发起Ajax请求上传文件
//1.导入jquery
<scriptsrc="https://code.jquery.com/jquery-3.6.0.min.js"></script>
//写JavaScript
<script>
//2.写全局粘贴事件
$('html').on('paste',function(e){
//3.获取文件并打印
varfil=event.clipboardData.items[0].getAsFile();
console.log(fil);
//4.新建构造函数,存到data中
vardata=newFormData();
//4.1把fil放到data里面去
data.append("image",fil);
//5.发起Ajax请求上传文件
$.ajax({
method:'POST',//请求类型POST
url:'https://ddp.ink/api/upload',//api地址
data:data,//data是存的图片数据
dataType:"json",//服务器返回类型为json
//contentType内容的编码类型。为false时将不设置Content-Type。
contentType:false,
//processData是否把传递进来的数据转换成查询字符串发送设置false否。
processData:false,
//success成功返回
success:function(response){
//打印成功后返回的数据
console.log(response);
}
});
});
</script>
复制代码
`contentType`需要设置为`false`因为不需要设置`contentType`
`processData`需要设置为`false`因为不需要转换
然后打印一下成功后返回的数据:
准确无误。
修改一下log的打印数据
顺利拿到链接。基本就结束了,下面贴上文件方便下载。
##下载链接
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|不懂 ( 粤ICP备14042591号-1 )|网站地图

GMT+8, 2024-10-31 12:15 , Processed in 0.078335 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

返回顶部