Javascript 将base64映像上载到.NET webservice并在那里进行转换
我有一个函数,它使用POST-to-remove.netwebservice通过Javascript 将base64映像上载到.NET webservice并在那里进行转换,javascript,c#,jquery,base64,Javascript,C#,Jquery,Base64,我有一个函数,它使用POST-to-remove.netwebservice通过data:JSON.stringify(formdata)发送数据。到目前为止我没有问题。我想做的是向formdata JSON中添加另一个值,该值将保存base64图像数据并将其发送到服务器,然后在那里我将其转换回JPEG图像 我怎么能这样呢?我已经有一个预览功能,可以创建预览,但也可以创建base64图像: function previewFile() { var preview = document.q
data:JSON.stringify(formdata)
发送数据。到目前为止我没有问题。我想做的是向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" />
谢谢。这是.NET代码,如何通过formdata JSON附加的参数将数据正确传输到Web服务?@IDANSHECTER我在e.target.result中发回了值,因此我不使用JSON,但您应该能够使用该值fileid是什么?您共享部分代码,所以我试着逐段理解。@IDANSHECTER抱歉,fileid将是您的文件输入字段的id。例如:谢谢,我会按照答案做,这很有意义。我会和你一样解决的。非常感谢你抽出时间,我的朋友。