使用asp.net 4.0将图像保存到Sql Server数据库表中ajax
我有一个表单,用户可以将图像上传到网站。图像以二进制形式存储在表格中。使用asp.net 4.0将图像保存到Sql Server数据库表中ajax
我在网站上使用ajax和JQuery,它永远不会重新加载,所以当用户输入数据并推送提交时,页面不会重新加载。相反,我使用ajax将数据上传到服务器。
当我刚直通文本,它看起来是这样的:
$("#storeDataAndImgBtn").bind("click", function() {
var msg = $("#emailMsg").val();
var from = $("#fromEmail").val();
$.ajax({
type: "POST",
url: "Default.aspx/storeDataAndImg",
data: "{\"from\":\"" + from + "\" ,\"msg\":\"" + msg + "\" ,\"value\":\" 'image should be here' \" }",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (temp) {
alert(temp.d);
$("#mailForm").fadeOut(function() {
$("#overlay").fadeOut();
});
}
});
return false;
});
我的问题是我怎么能直通图像,这样我可以把它存储在数据库中?
我假设图像仅仅是一个Input Type="File"
。如果是这种情况,由于安全原因,您无法使用Ajax访问输入字段。我相信最好的解决方案是使用IFrame
作为提交目标。它不漂亮,但它的工作原理。
SOF - How to make Asynchronous(AJAX) File Upload using iframe
你的另一种选择是使用闪存/ Silverlight的/等插件。我目前正在使用SWFUpload。
如果可能,我会建议不要将图像存储在数据库中。而是将图像存储在服务器的文件系统上。
这里指类似/相关的问题: store image in database or in a system file?
好了,所以说其实我改变,让我将图像存储到服务器上的文件系统来代替。我如何(无需重新加载页面,发表文章)将图像存储到文件系统中? – Mikael 2010-08-23 16:44:22
嗯,使用阿贾克斯这并不是真的发生在盒子外面;但你可以在这里找到你需要的东西:http://geekswithblogs.net/rashid/archive/2007/08/01/Create-An-Ajax-Style-File-Upload.aspx以及类似的问题/答案在这里:http ://sackoverflow.com/questions/254831/asp-net-free-ajax-file-upload-control – 2010-08-23 19:00:28
我去了SWFUpload,效果很棒! – Mikael 2010-08-24 23:27:16