fetch call web api upload or update picture

news/2024/12/2 14:44:39/文章来源:https://www.cnblogs.com/insus/p/18581558

昨天C# + html + fetch + API + javascript https://www.cnblogs.com/insus/p/18579193

其中有一个图片相关的功能,现把它解说一下。
html页面上,简单的input和button,无需何附加<form action="/action_page_binary.asp" method="post" enctype="multipart/form-data">...</form>另处button的type直接是type="button"非type="submit"。


 

写Web API, 2个方法,upload and update ,其实Insus.NET略过一些代码,MultipartStreamProvider 类别,可以参考msdn:https://learn.microsoft.com/en-us/previous-versions/aspnet/hh995283(v=vs.118)  它将处理上传的文档和用户的一些附加信息。

 

 

接下来,可以写js code, 完整代码,会有些长, 上传,图片呈现,还可以对已经上传的图片进行编辑,更新和删除等功能,慢慢仔细看来...

根据上一篇,是使用 fetch来呼叫web api,因此这随笔也是继续使用fetch实现。

找到上传铵钮,添加click监听addEventListener()。由于上传,你还得在header中配置Access-Control-Allow-Origin,这可参考示例。当然,你在这个function做一些其它处理,判断文件类别,大小,生成缩略图等...

async function upload_Picture(url, options),

h

 上传成功之后,你还得把上传的图片显示一页面上,供操作者有再次对其编辑与管理功能。

function load_picture(),

 

async function getPictureData(url, options),

 getPictureData从数据获取数据,将数据(图片)呈现在html的table上,几个function动态生成的管理铵钮,input,click button,update,cancel,delete
上面这此铵钮js分别如下,
function dynamic_picture_rendering(data),

图片无需要在前端另外处理,Insus.NET在数据库直接把varbinary转成base64的字符串了。在本博客应该有相关代码解说。

function editbutton_eventlistener(data),
and
function cancelbutton_eventlistener(data),

 上面2个function,只是为了动态生成的铵钮显示与隐藏而已。

function updatebutton_eventlistener(data),

此处理更新与篇前的上传功能一样,细节处仍有一些少变化。

async function update_picture(url, options),

 更新成功之后,得把图片再次加载呈现。

最后是动态生成的删除铵钮的事件,传入图片记录的主键,在数据中执行 删除。
function deleteButton_eventlistener(data),

 对删除操作,需要提供操作者有思考的确认。confirm,点OK,删除,点cancel是取消删除。

async function delete_pictute(url, options, index),

 

function remove_table_column(index),

 

上面这个function,即是在删除图片时,需要把整2行移除,也就是说,表格整列移除。
这只是为了显示效率问题,如果十分不想这样做,你可以重新从数据库获取数据,再加载。
演示,

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/845437.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

长期主义下的一本经济账:卷价格更要卷性能

「 不做陪跑者,要做支撑者。企业成长的每个关键时刻,在背后默默发力。」今年以来,云的价格战似乎更猛烈了一些。 事实上,云服务降价在规模与创新两重推动力下早就是一种常态。作为云的鼻祖,亚马逊云经常是一年连续降价十几次甚至几十次。这种理性降价,是将规模红利与创新…

“天翼云息壤杯”高校AI大赛福建赛区启动!

11月20日,2024首届全国“天翼云息壤杯”高校AI 大赛(福建赛区)正式启动。中国电信福建公司携手华为公司、福建省计算机学会、福建省自动化学会,正式启动天翼云科技有限公司承办的“天翼云息壤杯”高校AI大赛(福建赛区)赛事。该赛事是中国电信搭建的进一步挖掘培养AI人才、…

从挑战到突破:HBlock定义智算存储新范式!

近日,由DOIT传媒主办,中国计算机学会信息存储专委会、武汉光电国家研究中心、百易存储研究院支持的2024中国数据与存储峰会在北京召开。此次峰会以“智数据 AI未来”为主题,天翼云科技有限公司国际业务事业部存储产品线专家肖夏敏代表参会,并发表“轻量级存储集群控制器HBl…

html2canvas 解决某些站点截图空白问题

业务场景介绍 点击浏览器右上角已安装的chrome插件图标,这个时候会出现一个界面,我们称这个界面为popup,界面上有个"从页面获取产品信息"按钮,单机它会对当前标签页面内容进行截图,最后将截图的图片转成base64发送至xx接口 部分核心代码解读:截取当前可视区域的…

领歌看板助力电商大促筹备

每年的“双11”“双12”“618”等大型电商促销活动是各企业的年度重头戏,但涉及环节众多、协作复杂,稍有疏漏就可能影响活动效果。领歌看板为您提供了一种高效、直观的任务管理方式,确保每一步都尽在掌握。 1. 全面覆盖任务场景,理清活动脉络 利用领歌看板,您可以将大促活…

.NET开发WinForm(C/S)项目整合三种SOA服务访问(直连、WCF、WebAPI)模式

在软件开发领域,尤其是企业级应用开发中,灵活性、开放性、可扩展性往往是项目成功的关键因素。对于C/S项目,如何高效地与后端数据库进行交互,以及如何提供多样化的服务访问方式,是开发者需要深入考虑的问题。目前主流的方式就三种:数据库直连、WCF模式、WebAPI模式。RDIF…

mysql 之查询条件!=或者存在问题,会被轻易忽略而且影响查询结果

mysql数据库查询,我们再使用sql条件时会经常使用!=(<>),但使用!=之后,这个字段对应的为空的值不会查出来。所以建议!=长春与is null同时用 查询结果测试如下: 我们先查询满足条件的数据;id上下相同,同时此id的对应的paln_status查询如图是空的: 咱们再来查询总…

Postman 安装与汉化超详细步骤全解析教程

下载安装包 首先,我们需要获取 Postman 的安装包。为了方便,链接提供了安装包跟汉化包 点击获取postman安装及汉化包 为什么要提供安装包跟汉化包? 汉化包和postman的版本必须是一致的,如果不一致就会出现汉化后无法打开postman的问题; 注意:如果想要汉化的就不能使用最新…

文档比对新玩法:从文本细节到逻辑洞察

在学术研究和项目管理中,文档的版本对比和差异检查往往是个被低估却至关重要的环节。尤其是在跨学科合作或大型团队中,不同版本的文档往往在细节上存在微妙变化,而这些变化可能直接影响研究结论、策略决策甚至是整个项目的方向。 传统的文档对比工具往往局限于纯文本比对,这…

有效管理win11系统开机启动项

平时如果有你不想随着系统开机就启动的软件,可以通过下面的方式进行设置。个人推荐使用这个办法 1.首先点击开始菜单2.点击“设置”3.再点击左边栏“应用”选项4.然后点击其中的“启动”设置5.选择开关按钮,即可设置启动或禁用

ai大模型流式输出------基于SSE协议的长连接实现ax

传统的http1.0请求开发,已经满足了我们日常的web开发。一般请求就像下图这样子,客服端发起一个请求(触发),服务端做出一个响应(动作): 有时会有诸如实时刷新,实时显示的场景,我们往往是客户端定时发起请求,不断的尝试获取最新的数据。但是每次请求都会创建并释放一个…

高级语言程序设计课程第十次个人作业

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C 高级语言程序设计课程第十次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13314 学号:102400226 姓名:石华波 本次作业所用到的"Source.txt"文本文件均为下图文件://1202.1 #include…