点击图片,AJAX删除后台图片文件的实现代码(asp.net)
包含了2个页面,一个是显示图片的页面,一个是传递文件名,然后删除真实图片的页面。具体的代码如下:
ShowPics.htm:
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Untitled Page</title>
<script src="JS/jquery-1.4.4.js" type="text/javascript"></script>
<script src="JS/json2.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("body img").click(function() {
var name = $(this).attr("alt");
$.ajax({
url: "DeletePicsForm.aspx",
data: "picname="+name,
datatype: "json",
type: "GET",
contentType: "application/json; charset=utf-8",
success: function(data, textStatus) {
alert(data.result);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
}
});
});
});
</script>
</head>
<body>
<div>
<img src="Images/xiyangyang.jpg" alt="xiyangyang.jpg" />
</div>
</body>
</html>
具体的删除的页面的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (Request["picname"] != null)
{
Response.Clear();
Response.ContentType = "application/json";
String result = "success";
try
{
File.Delete(Server.MapPath(@"\Images\")+Request["picname"].ToString());
}
catch (Exception ee)
{
result = ee.Message;
}
Response.Write("{\"result\":\"" +result+ "\"}");
Response.End();
}
}
对于上面图片名称的传递,是用的GET方式,想换成POST方式可以用如下的方法:
代码如下:
$(function() {
$("body img").click(function() {
var name = $(this).attr("alt");
$.ajax({
url: "DeletePicsForm.aspx",
data: { picname: name },
datatype: "json",
type: "post",
success: function(data, textStatus) {
alert(data.result);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest);
}
});
});
});