将 base64 图像上传到 .NET webservice 并在那里进行转换
Upload base64 image to .NET webservice and convert it there
我有一个函数可以通过 data:JSON.stringify(formdata)
使用 POST 将数据发送到删除 .NET 网络服务。到目前为止我没有问题。我想要做的是添加另一个值到 formdata JSON 将保存 base64 图像数据并将其发送到服务器,然后我将把它转换回 JPEG 图像。
我该怎么做?我已经有一个创建预览的预览功能,而且还创建了一个base64图像:
function previewFile() {
var preview = document.querySelector('.uploadimage');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
preview.src = reader.result;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
我看到很多人询问如何将图片上传到服务器。我想保留当前配置,只是将 base64 图像数据作为字符串传递给服务器。我看到许多开发人员为此苦苦挣扎,他们中的大多数人只是在 javascript 中创建一个表单并像那样提交。
这是我最近使用的方法:
string base64 = base64string.Substring(base64string.IndexOf(',') + 1);
byte[] imageData = Convert.FromBase64String(base64);
Image img;
using (var ms = new MemoryStream(imageData, 0, imageData.Length)) {
img = Image.FromStream(ms, true);
您将需要:
using System.Drawing;
或者简单地转换为 jpg,使用这个:
File.WriteAllBytes("image.jpeg", Convert.FromBase64String(base64));
我使用以下 JS 发送数据:
function sendImage() {
if (this.files && this.files[0]) {
var FR = new FileReader();
FR.onload = function (e) {
$("#imgImage").attr("src", e.target.result); //show a preview
//send e.target.result as a string to your webservice
};
FR.readAsDataURL(this.files[0]);
}
}
我用这个事件来监听上传的文件:
document.getElementById("fileid").addEventListener("change", sendImage, false);
和前端:
<input type="file" id="fileid" />
我有一个函数可以通过 data:JSON.stringify(formdata)
使用 POST 将数据发送到删除 .NET 网络服务。到目前为止我没有问题。我想要做的是添加另一个值到 formdata JSON 将保存 base64 图像数据并将其发送到服务器,然后我将把它转换回 JPEG 图像。
我该怎么做?我已经有一个创建预览的预览功能,而且还创建了一个base64图像:
function previewFile() {
var preview = document.querySelector('.uploadimage');
var file = document.querySelector('input[type=file]').files[0];
var reader = new FileReader();
reader.addEventListener("load", function () {
preview.src = reader.result;
}, false);
if (file) {
reader.readAsDataURL(file);
}
}
我看到很多人询问如何将图片上传到服务器。我想保留当前配置,只是将 base64 图像数据作为字符串传递给服务器。我看到许多开发人员为此苦苦挣扎,他们中的大多数人只是在 javascript 中创建一个表单并像那样提交。
这是我最近使用的方法:
string base64 = base64string.Substring(base64string.IndexOf(',') + 1);
byte[] imageData = Convert.FromBase64String(base64);
Image img;
using (var ms = new MemoryStream(imageData, 0, imageData.Length)) {
img = Image.FromStream(ms, true);
您将需要:
using System.Drawing;
或者简单地转换为 jpg,使用这个:
File.WriteAllBytes("image.jpeg", Convert.FromBase64String(base64));
我使用以下 JS 发送数据:
function sendImage() {
if (this.files && this.files[0]) {
var FR = new FileReader();
FR.onload = function (e) {
$("#imgImage").attr("src", e.target.result); //show a preview
//send e.target.result as a string to your webservice
};
FR.readAsDataURL(this.files[0]);
}
}
我用这个事件来监听上传的文件:
document.getElementById("fileid").addEventListener("change", sendImage, false);
和前端:
<input type="file" id="fileid" />