既没有得到任何错误,也没有将html2canvas映像保存到服务器端
Neither getting any error nor html2canvas image is getting saved to server side
我正在尝试将一个html2canvas映像保存到asp.net Web方法中的服务器端代码中。为此,我尝试通过jquery-ajax-click方法发送参数。客户端代码上的每一件事都很好,因为我没有得到任何类型的错误或警告,但同时我也没有在服务器端得到图像。我正试图从长期的经历中找出这个问题,但并没有找到它发生的方式或原因。这是我的客户端代码。。
$("#excel").on("click", function (e) {
e.preventDefault();
html2canvas($("#placeholder").get(0), {
onrendered: function (canvas) {
var img = canvas.toDataURL().replace(/^data[:]image'/(png|jpg|jpeg)[;]base64,/i, "");
$.ajax({
type: "POST",
url: "Default.aspx/MyMethod",
data: "img=" + img,
success: function (msg) {
alert("Data Saved: " + msg);
}
});
}
});
});
请大家帮帮我。我完全被这种情况惊呆了。需要一个生命救世主。提前谢谢。
这是我的服务器端代码。。
[WebMethod]
public static void MyMethod(string img)
{
string fileNameWitPath = "D:/Kabir/custom_name.png";
using (FileStream fs = new FileStream(fileNameWitPath, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = Convert.FromBase64String(img);//convert from base64
bw.Write(data);
bw.Close();
}
}
}
这是我的Web服务代码。。
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// [System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
[WebMethod]
public static void MyMethod(string img)
{
string path = HttpContext.Current.Server.MapPath("/") + "Test.jpg";
//string fileNameWitPath = "D:''Kabir''custom_name.png";
using (FileStream fs = new FileStream(path, FileMode.Create))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
byte[] data = Convert.FromBase64String(img);//convert from base64
bw.Write(data);
bw.Close();
}
}
}
}
这在firebug中给出了这个错误。。
System.InvalidOperationException: MyMethod Web Service method name is not valid.
at System.Web.Services.Protocols.HttpServerProtocol.Initialize()
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing)
为什么会出现这种错误?
我无法通过调用ASPX Web方法来创建图像。一旦我将代码移动到ASMX web服务,它就创建了图像。请确保您对文件夹具有权限,并且对于Windows,fileNameWitPath
变量上的前斜杠(/
)必须是后斜杠('
)
ASMX
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.IO;
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
// <System.Web.Script.Services.ScriptService()> _
[System.Web.Services.WebService(Namespace = "http://tempuri.org/")]
[System.Web.Services.WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ToolboxItem(false)]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod()]
public void MyMethod(string img)
{
string path = HttpContext.Current.Server.MapPath("/") + "Test.jpg";
using (FileStream fs = new FileStream(path, FileMode.Create)) {
using (BinaryWriter bw = new BinaryWriter(fs)) {
byte[] data = Convert.FromBase64String(img);
bw.Write(data);
bw.Close();
}
}
}
}
脚本
$("#excel").on("click", function (e) {
e.preventDefault();
html2canvas($("#placeholder").get(0), {
onrendered: function (canvas) {
var img = canvas.toDataURL().replace(/^data[:]image'/(png|jpg|jpeg)[;]base64,/i, "");
$.ajax({
type: "POST",
url: "WebService1.asmx/MyMethod",
data: "img=" + img,
success: function (msg) {
alert("Data Saved: " + msg);
}
});
}
});
相关文章:
- 如何使jQuery中的悬停函数单独应用于数据库映像
- 无法在Safari中加载跨源映像(来自CloudFront)
- 有没有一种方法可以从chrome'的存储映像
- 如何在不必维护每个文件的两个版本的情况下,将通用JavaScript和映像部署到两个不同的EAR
- 在使用 Django 静态文件时动态设置映像时,只有绝对路径才能与 jquery 一起使用
- 获取我的数组中的每个 ID 映像 src
- 映像选取器在初始化时预选项
- 循环映像 IE7 问题
- 本地映像对象未在Javascript中正确初始化
- PHP抓取没有扩展的远程映像
- 如何在ASP.NET Response.BinaryWrite生成的Javascript中处理字节数组映像
- JQuery Error在出现错误时加载备用映像的事件
- 要映像的 Blob URL
- appendChild dataURI映像到window.open在IE中失败
- 在MySQL中存储映像路径与使用<img src=“"onError=“">
- 如何侦听跨域映像请求上的任何301/302重定向状态代码
- THREE.js:跨来源资源共享策略拒绝跨来源映像加载
- 将映像存储到本地存储
- Chrome上使用THRE.js的本地映像上的跨源映像加载被拒绝
- 既没有得到任何错误,也没有将html2canvas映像保存到服务器端