在 ASP.NET 应用中将图像从 JavaScript 传递到 C#
本文关键字:JavaScript 图像 NET ASP 应用 | 更新日期: 2023-09-27 17:56:08
我在JavaScript
应用程序中加载了一个图像变量,我想将其传递给ASP.NET
应用程序中的C#
方法(以便我可以将其存储在数据库中)。 我遇到的唯一问题是将图像的数据本身获取到C#
方法。 我尝试使用AJAX
调用(这是一个GET
),并将C#
方法的byte[]
参数设置为图像的.图片,但byte[]
是空的。
如何将图像的数据从 JavaScript 脚本获取到 C# 方法?
更新:我尝试在画布的呈现上下文中使用 drawImage 将图像复制到画布,但图像必须来自我的本地计算机,因此当我随后尝试调用 canvas.toDataURL 时,它会引发 DOM 安全错误。
我还考虑过使用 FileReader 直接获取数据,而不是将其作为图像加载,但是出于政治原因,我必须支持尚未实现 FileReader 的浏览器。
我是否要求一些在 JavaScript 中不可能实现的东西? (必须有一种方法可以做到这一点(不一定在JS中),因为Facebook实现了从客户端计算机的本地文件系统加载图像。
我不知道
您如何在javascript
应用程序中加载图像。但是当我遇到同样的问题时,我以以下方式做了。
.HTML
<input id="imgInput" type="file" name="file" />
<img id="imagePreview" src="" alt="Item Image" width="96" height="80"/>
<input id="Button1" type="button" value="save image" onclick="saveimage();"/>
.JS
$(document).ready(function () {
$("#imgInput").change(function () {
readURL(this);
});
});
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#imagePreview').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
function saveimage() {
var images = $('#imagePreview').attr('src');
var ImageSave = images.replace("data:image/jpeg;base64,", "");
var submitval = JSON.stringify({ data: ImageSave });
$.ajax({
type: "POST",
contentType: "application/json;charset=utf-8",
datatype: "json",
data: submitval,
url: "your url",
success: function (data) {
//code for success
}
});
}
。.CS
[WebMethod]
public static string saveimage(string data) {
byte[] imgarr = Convert.FromBase64String(data);
/* Add further code here*/
}