大家都知道Scratch3.0开发后,默认是可以下载文件到电脑,但是如果是作为商业系统来说,我们需要将作业自动的提交到后台,因此有了这篇文章。

首先,我们来分解下开发步骤:

1.在菜单栏新增一个上传到作业的菜单

2.点击上传到作业后,自动上传到上传文件目录并返回URL地址(目前利用的是阿里云的OSS对象)

3.将地址保存到用户作业的数据库表中

首先我们来分析下scratch3.0这个的结构

首先,我们需要新增一个上传到作业的菜单

  1.打开SRC/components/menu-bar/menu-bar.jsx的414行

  

  其中,新增了SB3UpdateToWeb对象,以及IDgui.menuBar.updatetoweb

  由于scratch采用的是多语言版本,因此很多的文字其实都是存储在对象里,你可以设置gui.menuBar.updatetoweb,若没找到配置文件,则会采用默认的文字信息

  如果要知道如何新增id,请参考文章  https://www.cnblogs.com/lickies1983/p/11918610.html

  2下面,我们需要新增SB3UpdateToWeb定义

  

  3我们需要找到containers/sb3-downloader.jsx复制一份名称为sb3-updatetoweb.jsx

  4找到scr/libs/download-blob.js 复制一份名称更改为updatetoweb-blob.js

  5打开sb3-updatetoweb.jsx

    更改CLASS 定义为SB3UpdateToWeb,更改函数downloadBlob为updatetowebBlob

    同时将该文件下的所有的SB3Downloader更改为SB3UpdateToWeb(注意)

  目前为止,保存运行

最后,相关的动作和操作其实都在updatetoweb-blob.js

  首先,需要将BLOB转化为file格式

  提交upload时需要更换为formdata格式

  采用fetch提交到后台接口并返回url

  以上几个步骤,请自行根据后台接口格式跟换

  

  最后一步是根据url采用fetch上传到作业的数据库,此部分根据接口自行处理

  附件:sb3-updatetoweb.jsx,updatetoweb-blob.js

  点击下载

--------------------------------------------------------------------

博主:雷君(微软MVP,众聚互联CEO)

长期致力于企业IT服务,以及青少年编程培训课程

培训机构讨论热线:18859773999

--------------------------------------------------------------------

如何将scratch3.0的作业自动提交到后台数据库的更多相关文章

  1. JDBC 关闭数据库连接与自动提交【转】

    // Jdbc关闭数据库连接时,会隐含一个提交事务的操作 private final static String DB_DRIVER = "oracle.jdbc.driver.Oracle ...

  2. form表单取消按钮自动提交

    默认写在form表单里的按钮可以自动提交表单,现在要实现的效果是点击button按钮调用js函数,再有ajax提交 <button type="button" class=& ...

  3. 自动提交Git branch代码评审到Review Board系统

    背景 敏捷软件开发中,越小的反馈环,意味着软件质量越容易得到保证. 作为组件团队,我们的开发任务中,往往存在一些特性涉及到几十个功能点,开发周期持续数周或数月的情况.如何在开发过程中保证软件质量,是个 ...

  4. 按下enter键后表单自动提交问题

    在HTML的form表单里,按下enter键之后,默认情况下表单会自动提交. 在公司一个项目里,按下enter键自动提交表单的查询结果与按下搜索框的搜索结果页面显示不一样,按下搜索按钮之后是通过Aja ...

  5. postgresql 关闭自动提交

    1. 简介说明             我们知道oracle中sqlplus里面执行dml语句:是需要提交commit:若错了:也可以回滚rollback: 然而在postgresql里面默认是自动提 ...

  6. Ajax技术--考试计时并自动提交试卷

    1.概述 在开发网络考试系统时,考试计时并自动提交试卷是必不可少的功能.由于在答卷过程中,试卷不能刷新,所以需要使用Ajax实现无刷新操作.运行本实例,访问准备考试页面index.jsp,在该页面中, ...

  7. 14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚

    14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚 如果自动提交模式被启用,在InnoDB里, 所有的用户活动发生在一个事务里, 每个SQL语句 ...

  8. C# 自动提交到百度ping服务

    C# 自动提交到百度ping服务 今天无意之间看到百度站长中有这个ping服务(孤陋寡闻呀).... 那什么什么是Ping服务 ping是基于XML_RPC标准协议的更新通告服务,用于博客把内容更新快 ...

  9. yii gridview 时间段筛选(一个输入框,自动提交,高清大图)

    yii gridview功能强大,但是时间筛选比较麻烦,与数据库的存储格式有关,本文的时间格式是date类型 那么问题来了,yii只提供关于时间的text搜索格式,就是只能查找精确日期比如2017-8 ...

随机推荐

  1. OpenShift 4.1 演示

    功能演示主要包含三个方面. 1. 管理控制台 push镜像发布应用 podman build -t mytomcat:slim . podman tag localhost/mytomcat:slim ...

  2. Bladex之Arhcer代码生成器

    代码生成器配置: 数据库表准备:Archer中增加对应的表:(参照test_notice和test_notice_list表)主表:SET FOREIGN_KEY_CHECKS=0; -- ----- ...

  3. 使用epoll实现一个udp server && client

    udp server #!/usr/bin/env python #-*- coding:utf-8 -*- import socket import select import Queue #创建s ...

  4. zabbix 后台数据库清除数据

    alerts 表 problem 表 escalations 表 events 表  event_recovery表 对 这些表进行清除 防止不停发送邮件 -- alerts table rebuil ...

  5. django使用https

    根据以下内容总结了下: http://www.voidcn.com/article/p-xxdfvetx-da.html http://www.voidcn.com/article/p-ezmbnny ...

  6. 快排 PAT 1101

    1101 Quick Sort (25 分)   There is a classical process named partition in the famous quick sort algor ...

  7. docker安装ES,Kibana

    docker安装ES 1.docker pull elasticsearch:6.8.2 2.docker run -it --name elasticsearch   -d -p 9200:9200 ...

  8. ALV报表——发送Excel报表邮件

    ABAP发送报表邮件 运行效果: 代码: *&---------------------------------------------------------------------* *& ...

  9. 关于elasticsearch使用G1垃圾回收替换CMS

    最近ES集群数据节点经常出现jvm占用过高,频繁GC导致ES集群卡死,很长时间才恢复.在网上看到用G1垃圾回收可以改善这一情况,但都是老版本的ES,我们现在使用的版本是5.5.2,所以想问问各位5.5 ...

  10. Hadoop2.x 集群搭建

    Hadoop2.x 集群搭建 一些重复的细节参考Hadoop1.X集群完全分布式模式环境部署 1 HADOOP 集群搭建 1.1 集群简介 HADOOP 集群具体来说包含两个集群:HDFS 集群和YA ...