如何使用 jQuery 方法从数据 URL 上传图像?
How can I upload an image from Data URL with jQuery method?
我拖了一张图片到我的 browser.Now 我有数据 URL.How 我可以用 jQuery 方法将它上传到服务器吗?
您需要服务器端代码来获取图像并存储它。它不会神奇地发生。您可以在 Whosebug 中搜索如何使用 ajax / XmlHttpRequest
将数据从客户端传输到服务器
我有以下示例,将图像从页面传输到服务器。请注意,该图像已在页面中可见。这可能不是最好的选择,但对我有用。您可以利用此代码将图像传输到数据流,并在此处使用 ajax 调用。
这是html代码
<input id="filenametext" maxlength="50" />
<div id="divimage" style="border:2px solid red;margin-bottom:10px;margin-top:10px;">
<canvas id="myimage" width="400" height="200" style="border:2px solid orange; margin:5px 5px 5px 5px;"></canvas>
</div>
这里是javascript向服务器传输图片数据
function btnSaveImage() {
var imgdata;
var imgdata2;
var image = document.getElementById("myimage");
if (image != null) {
imgdata2 = image.toDataURL("image/png");
imgdata = imgdata2.replace('data:image/png;base64,', '');
}
var txt = $('#filenametext').val();
if (imgdata != null) {
$.ajax({
type: 'POST',
url: 'http://localhost/MyWebService/WebServicePage.asmx/SaveImage',
data: '{"fname":"' + txt + '","image":"' + imgdata + '"}',
contentType: 'application/json; charset=utf-8',
success: function (msg) {
$('#status').val('');
$('#statustext').val(msg);
},
error: function(xhr, status, msg) {
$('#status').val(status);
$('#statustext').val(msg);
var txtres = document.getElementById("response_div");
if (txtres != null) {
txtres.innerText = xhr.responseText;
}
}
});
}
}
在服务器上我有一个网络服务运行,下面的函数捕获图像数据并保存它。您需要在磁盘上将服务器端权限设置为 read/write(记住)。
[WebMethod]
public int SaveImage(string fname, string image) {
string filename = HttpContext.Current.Server.MapPath("~/images/") + fname;
using (System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Create)) {
byte[] data = Convert.FromBase64String(image);
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
bw.Write(data);
bw.Close();
}
return 0;
}
您可能需要做一些工作才能将 Web 服务发布到本地 IIS。
我拖了一张图片到我的 browser.Now 我有数据 URL.How 我可以用 jQuery 方法将它上传到服务器吗?
您需要服务器端代码来获取图像并存储它。它不会神奇地发生。您可以在 Whosebug 中搜索如何使用 ajax / XmlHttpRequest
将数据从客户端传输到服务器我有以下示例,将图像从页面传输到服务器。请注意,该图像已在页面中可见。这可能不是最好的选择,但对我有用。您可以利用此代码将图像传输到数据流,并在此处使用 ajax 调用。
这是html代码
<input id="filenametext" maxlength="50" />
<div id="divimage" style="border:2px solid red;margin-bottom:10px;margin-top:10px;">
<canvas id="myimage" width="400" height="200" style="border:2px solid orange; margin:5px 5px 5px 5px;"></canvas>
</div>
这里是javascript向服务器传输图片数据
function btnSaveImage() {
var imgdata;
var imgdata2;
var image = document.getElementById("myimage");
if (image != null) {
imgdata2 = image.toDataURL("image/png");
imgdata = imgdata2.replace('data:image/png;base64,', '');
}
var txt = $('#filenametext').val();
if (imgdata != null) {
$.ajax({
type: 'POST',
url: 'http://localhost/MyWebService/WebServicePage.asmx/SaveImage',
data: '{"fname":"' + txt + '","image":"' + imgdata + '"}',
contentType: 'application/json; charset=utf-8',
success: function (msg) {
$('#status').val('');
$('#statustext').val(msg);
},
error: function(xhr, status, msg) {
$('#status').val(status);
$('#statustext').val(msg);
var txtres = document.getElementById("response_div");
if (txtres != null) {
txtres.innerText = xhr.responseText;
}
}
});
}
}
在服务器上我有一个网络服务运行,下面的函数捕获图像数据并保存它。您需要在磁盘上将服务器端权限设置为 read/write(记住)。
[WebMethod]
public int SaveImage(string fname, string image) {
string filename = HttpContext.Current.Server.MapPath("~/images/") + fname;
using (System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileMode.Create)) {
byte[] data = Convert.FromBase64String(image);
System.IO.BinaryWriter bw = new System.IO.BinaryWriter(fs);
bw.Write(data);
bw.Close();
}
return 0;
}
您可能需要做一些工作才能将 Web 服务发布到本地 IIS。