为了账号安全,请及时绑定邮箱和手机立即绑定

从 iPad 创建画布图像

从 iPad 创建画布图像

holdtom 2021-09-04 15:05:27
从 iPad 或其他基于触控的设备发送画布图像时,我的基于画布的签名板不会将图像保存到指定目录。尽管从 Visual Studio 和常规 Windows PC 上的实时网站测试时图像数据发送得非常好,但 iPad 似乎无法通过 JavaScript 函数发送 Base64 代码。在为这个站点创建 reprex 时,我注意到我需要在 RouteConfig.cs 中注释掉一行(感谢 Sanjay Sharma),然后应用程序甚至能够将图像发送到我的本地机器。从那时起,我尝试查看是否有任何类型的重定向问题会导致在 iPad 上工作时出现问题,但我没有发现任何建议。此页面构建为 ASP.NET Web 窗体站点(Visual C# > Web > 以前的版本),它包含一个可用于触摸和桌面界面的画布。用于制作画布的代码(在“Drawpad”中调用)基于此处找到的代码:https://www.html5canvastutorials.com/labs/html5-canvas-paint-application/https://jsfiddle.net/gfcarv/66nVn/http://jsfiddle.net/sdncP/<body data-rsssl="1" onload="DrawPad()">    <form id="form1" runat="server">        <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>        <input type="hidden" id="imageData" runat="server" class="image-data" />        <canvas id="myCanvas" width="500" height="100"></canvas>        <br />        <asp:Button ID="btnSave" runat="server" Text="Submit" />    </form>    <script type="text/javascript" id="jsDraw">        var canvas = document.getElementById('myCanvas');        var ctx = canvas.getContext('2d');        // function DrawPad() {...} // see the bullet points for this one        $("#btnSave").click(function () {            var image = document.getElementById('myCanvas').toDataURL("image/png");            image = image.replace('data:image/png;base64,', '');            $.ajax({                type: 'POST',                url: 'Default.aspx/UploadImage',                data: '{ imageData : "' + image + '" }',                contentType: 'application/json; charset=utf-8',                dataType: 'json'            });        });    </script></body>应用程序应将图像流式传输到预定目录。尽管可以直接访问图像的 Base64 代码,但该过程中的某些内容(无论是 BinaryWriter、FileStream 还是其他内容)导致数据无法写入。因此,在尝试将文件名加载到所需表中时,尝试签署表单并发送图像会导致基于 SQL 的参数错误;因为文件没有被创建,所以没有文件名,因此即使有文件名也没有办法将数据提交到表中,也没有什么可回调的。我最好的猜测是,当从 iPad 提交时,某些原因导致 UploadImage() 方法被完全忽略,但我不知道是什么。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 330 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信