IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Canvas 图片上传,JAVA后端使用 MultipartFile 接收 -> 正文阅读

[JavaScript知识库]Canvas 图片上传,JAVA后端使用 MultipartFile 接收

关键点:MultipartFile 如果需要使用 originalFileName 的扩展名来在服务器端生成文件,那么需要在前端 fromData() 使用三个入参的append方法

var form=new FormData();
form.append("file",result,"aa.png");

(感谢提供的基础框架?使用canvas上传图片+上传进度_邦杠的博客-CSDN博客

<html>
<head>
? ? <title>Canvas 文件上传</title>
</head>
<body>
<input type="file" id="myfile"/>
<canvas id="myCanvas" width="200" height="250" style="border:1px solid #d3d3d3;">

</canvas>
<button οnclick="test()">提交</button>

<img src="http://XXX/download?name=cae7319987cb486dacd1dc402f0d802d.png" />
<script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
<script>
? ? //选择图片后
? ? myfile.οnchange=function () {
? ? ? ? createURLImg(myfile.files[0]);
? ? }
? ? var pen=myCanvas.getContext("2d");
? ? //加载入canvas
? ? function createURLImg(file,callback) {
? ? ? ? var imgUrl=URL.createObjectURL(file);
? ? ? ? var image=new Image();
? ? ? ? image.src=imgUrl;
? ? ? ? image.οnlοad=function (ev) {
? ? ? ? ? ? pen.drawImage(image,0,0,200,250);
? ? ? ? ? ? if(callback) callback();
? ? ? ? ? ? URL.revokeObjectURL(imgUrl);
? ? ? ? }
? ? }
? ? //提交按钮
? ? function test() {
? ? ? ? myCanvas.toBlob(function (result) {
? ? ? ? ? ? var form=new FormData();
? ? ? ? ? ? form.append("file",result,"aa.png");
? ? ? ? ? ? ajax(form);
? ? ? ? })
? ? }
? ??
? ? function biafenb(r) {
? ? ? ? if(!pen) pen=myCanvas.getContext("2d");
? ? ? ? pen.save();
? ? ? ? pen.globalAlpha=0.3;
? ? ? ? pen.fillRect(0,(1-r)*200,200,250);
? ? ? ? pen.globalAlpha=1;
? ? ? ? pen.fillStyle = "white";
? ? ? ? pen.font = "20px 微软雅黑";
? ? ? ? pen.textAlign='center';
? ? ? ? pen.fillText(Math.round(r*100)+"%",100,100);
? ? ? ? pen.restore();
? ? }

? ? function ajax(formData) {
? ? ? ? $.ajax({
? ? ? ? ? ? url:"http://XXX/upload",
? ? ? ? ? ? type:"post",
? ? ? ? ? ? Accept:"html/text;chatset=utf-8",
? ? ? ? ? ? contentType:false,
? ? ? ? ? ? data:formData,
? ? ? ? ? ? processData:false,
? ? ? ? ? ? xhr: function () {
? ? ? ? ? ? ? ? var myXhr = $.ajaxSettings.xhr();
? ? ? ? ? ? ? ? myXhr.upload.οnprοgress=function (ev) {
? ? ? ? ? ? ? ? ? ? pen.clearRect(0,0,200,250);
? ? ? ? ? ? ? ? ? ? createURLImg(myfile.files[0],function () {
? ? ? ? ? ? ? ? ? ? ? ? biafenb(ev.loaded/ev.total);
? ? ? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? return myXhr;
? ? ? ? ? ? }, success: function (data) {
? ? ? ? ? ? ? ? console.log("上传成功!!!!");
? ? ? ? ? ? }, error: function () {
? ? ? ? ? ? ? ? console.log("上传失败!");
? ? ? ? ? ? }
? ? ? ? })
? ? }
</script>
</body>
</html>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 16:49:40  更:2022-06-26 16:50:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:11:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码