Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现
投稿:shangke
简单三步实现图片无刷新上传:注意是上传,至于上传时的验证,比如图片的尺寸,大小,格式。自行解决。如果我搞定了,也会贴上来的。
第一步:我们需要加载几个JS库。
jquery库。
jquery.form.js库。
下载这两个库,并引用到页面中。
以下为页面中 JS 代码:
复制代码 代码如下:
function upload() {
var options = {
type: "POST", //当然这个是传送方式
url: '../Include/Files.ashx', //一般处理程序的路径
success: function (msg) { //返回的参数
$("#server_img").attr("src", msg); //回显图片。
}
};
// 将options传给ajaxForm
$('#aspnetForm').ajaxSubmit(options);
}
第二步:一般处理程序内的代码
复制代码 代码如下:
public void ProcessRequest(HttpContext context)
{
HttpFileCollection files = context.Request.Files; // From中获取文件对象
if (files.Count > 0)
{
string path = ""; //路径字符串
Random rnd = new Random();
for (int i = 0; i < files.Count; i++)
{
HttpPostedFile file = files[i]; //得到文件对象
if (file.ContentLength > 0)
{
string fileName = file.FileName;
string extension = Path.GetExtension(fileName);
int num = rnd.Next(5000, 10000); //文件名称
path = "../../UserFiles/temp/" + num.ToString() + extension;
file.SaveAs(System.Web.HttpContext.Current.Server.MapPath(path)); //保存文件。
}
}
context.Response.Write(path); //返回文件存储后的路径,用于回显。
}
}
第三步:html或者aspx中的代码。
复制代码 代码如下:
<img id="server_img" width="360px" style="border: 1px solid #ccc; padding: 2px;" title="" alt="" /> //用于回显图片
<asp:FileUpload ID="Up_load" runat="server" onchange="upload()" ontextchange="upload()"/> //上传图片,自动的,两个事件是为了保证所有浏览器都兼容。