asp.net html 图片上传,ASP.NET图片上传实例(附源码)

由于需要图片上传的功能,所以花了一些时间网上找相关资料终于搞定,效果图如下:

3ec4bc63832a6e9a71e77351046fa656.png

下面的是解决方案截图和上传的图片截图:

4ef683ac7423247ff5970fb83b57978f.png

69262b2130513b7319ca058f7ba44e90.png

下面是代码:

1.界面代码

图片上传和显示

.pic_text{ color:Red;}

.pic_label { color:Gray; margin-top:5px; margin-bottom:5px;}

.pic_image { margin:5px;}

上传图片格式为.jpg, .gif, .bmp,.png,图片大小不得超过8M

2.后台代码

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.IO;

using System.Security.Cryptography;

using System.Web.Security;

namespace Pic_Try

{

public partial class UploadPic : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btn_upload_Click(object sender, EventArgs e)

{

Boolean fileOk = false;

if (pic_upload.HasFile)//验证是否包含文件

{

//取得文件的扩展名,并转换成小写

string fileExtension = Path.GetExtension(pic_upload.FileName).ToLower();

//验证上传文件是否图片格式

fileOk = IsImage(fileExtension);

if (fileOk)

{

//对上传文件的大小进行检测,限定文件最大不超过8M

if (pic_upload.PostedFile.ContentLength < 8192000)

{

string filepath = "/images/";

if (Directory.Exists(Server.MapPath(filepath)) == false)//如果不存在就创建file文件夹

{

Directory.CreateDirectory(Server.MapPath(filepath));

}

string virpath = filepath + CreatePasswordHash(pic_upload.FileName, 4) + fileExtension;//这是存到服务器上的虚拟路径

string mappath = Server.MapPath(virpath);//转换成服务器上的物理路径

pic_upload.PostedFile.SaveAs(mappath);//保存图片

//显示图片

pic.ImageUrl = virpath;

//清空提示

lbl_pic.Text = "";

}

else {

pic.ImageUrl = "";

lbl_pic.Text = "文件大小超出8M!请重新选择!";

}

}

else {

pic.ImageUrl = "";

lbl_pic.Text = "要上传的文件类型不对!请重新选择!";

}

}

else

{

pic.ImageUrl = "";

lbl_pic.Text = "请选择要上传的图片!";

}

}

///

/// 验证是否指定的图片格式

///

///

///

public bool IsImage(string str) {

bool isimage = false;

string thestr = str.ToLower();

//限定只能上传jpg和gif图片

string[] allowExtension = { ".jpg", ".gif", ".bmp",".png" };

//对上传的文件的类型进行一个个匹对

for (int i = 0; i < allowExtension.Length; i++)

{

if (thestr == allowExtension[i])

{

isimage = true;

break;

}

}

return isimage;

}

///

/// 创建一个指定长度的随机salt值

///

public string CreateSalt(int saltLenght)

{

//生成一个加密的随机数

RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

byte[] buff = new byte[saltLenght];

rng.GetBytes(buff);

//返回一个Base64随机数的字符串

return Convert.ToBase64String(buff);

}

///

/// 返回加密后的字符串

///

public string CreatePasswordHash(string pwd, int saltLenght)

{

string strSalt = CreateSalt(saltLenght);

//把密码和Salt连起来

string saltAndPwd = String.Concat(pwd, strSalt);

//对密码进行哈希

string hashenPwd = FormsAuthentication.HashPasswordForStoringInConfigFile(saltAndPwd, "sha1");

//转为小写字符并截取前16个字符串

hashenPwd = hashenPwd.ToLower().Substring(0, 16);

//返回哈希后的值

return hashenPwd;

}

}

}

3.最后防止上传大文件图片时报错,配置文件添加配置

希望大家喜欢这篇文章。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值