代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.Net
】
Asp.net上传图片,格式,大小,真伪,高级验证
作者:
Dezai.CN
/ 发布于
2013/3/7
/
683
Asp.net上传图片,格式,大小,真伪,高级验证
using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Xml.Linq; using System.Configuration; using System.Data.SqlClient; using System.IO; public partial class image_webUpload : System.Web.UI.Page { public string ProgramTheme = ConfigurationManager.AppSettings["ProgramTheme"].ToString(); private string FileUploadFolder = ConfigurationManager.AppSettings["FileUploadFolder"].ToString(); private string connString = ConfigurationManager.ConnectionStrings["connString"].ConnectionString; private string sql = ""; private int uid = 0; protected void Page_Load(object sender, EventArgs e) { //uid = Convert.ToInt32(Request["uid"].ToString()); if (!this.Page.IsPostBack) { //if (uid > 0) //{ //} } } #region FileUpload /// <summary> /// 上传图片,高级验证 /// </summary> /// <param name="folder">自定义用户文件夹</param> /// <returns>返回文件在服务器存储路径,或者错误码</returns> public string FileUpload(string folder) { string returnValue = ""; string ImgName = FileUpload1.FileName.Trim(); //获取文件名 string WebPath = HttpContext.Current.Server.MapPath("../" + FileUploadFolder + "/" + folder); //上传到指定路径 string Exten = System.IO.Path.GetExtension(FileUpload1.FileName).ToUpper(); //获取文件的扩展名 int ImgSize = 0; if (FileUpload1.PostedFile != null) { ImgSize = FileUpload1.PostedFile.ContentLength; //此处取得的文件大小的单位是byte if (ImgName != "") { //上传文件第一级文件扩展名和类型验证 if (Exten == ".GIF" || Exten == ".JPG" || Exten == ".PNG" || Exten == ".JPEG" || Exten == ".BMP") { if (ImgSize / 1024 < 100) //转换为KB,1(M)=1024(KB)=1024*1024(byte) { ImgName = DateTime.Now.ToString().Replace(" ", "").Replace(":", "").Replace("-", "") + Exten; //以当前时间来命名 if (!System.IO.Directory.Exists(WebPath)) { // 创建用户文件夹 folder System.IO.Directory.CreateDirectory(WebPath); } //上传文件 FileUpload1.SaveAs(WebPath + "\\" + ImgName); //高级验证 if (System.IO.File.Exists(WebPath + "\\" + ImgName)) { System.Drawing.Image image2 = System.Drawing.Image.FromFile(WebPath + "\\" + ImgName); if ((image2.Width <= 80) && (image2.Height <= 80)) { //最后一部高级验证,图片上传后的操作,判断是否真的是图片 System.IO.FileStream fs = new System.IO.FileStream((WebPath + "\\" + ImgName), System.IO.FileMode.Open, System.IO.FileAccess.Read); System.IO.BinaryReader r = new System.IO.BinaryReader(fs); string fileclass = ""; byte buffer; try { buffer = r.ReadByte(); fileclass = buffer.ToString(); buffer = r.ReadByte(); fileclass += buffer.ToString(); } catch { } r.Close(); fs.Close(); if (fileclass == "255216" || fileclass == "7173" || fileclass == "6677" || fileclass == "13780")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar { returnValue = FileUploadFolder + "/" + folder + "/" + ImgName; //上传成功,上传图片合格,返回存储路径 } else { System.IO.File.Delete((WebPath + "\\" + ImgName)); returnValue = "6"; //上传文件编码不正确,返回6; } } else { System.IO.File.Delete((WebPath + "\\" + ImgName)); returnValue = "5"; //图片尺寸超标,返回5 } image2.Dispose(); } else { returnValue = "4"; } //上传失败,返回4 } else { returnValue = "3"; } //文件大小超过100kb,返回3 } else { returnValue = "2"; } //上传文件格式错误,返回2 } else { returnValue = "1"; } //选择文件为空,返回1 } else { returnValue = "1"; } //选择文件为空,返回1 return returnValue; } #endregion //上传按钮事件 protected void btnOK_Click(object sender, EventArgs e) { string flag=FileUpload(uid.ToString()); if(string.IsNullOrEmpty(flag)) { showMsg(true,"操作失败!请重新上传。"); } else if (flag == "1") { showMsg(true, "选择文件不能为空!"); } else if (flag == "2") { showMsg(true, "上传文件格式错误!请换一张图片。"); } else if (flag == "3") { showMsg(true, "文件大小超过100KB!请换一张图片。"); } else if (flag == "4") { showMsg(true, "上传失败!请刷新页面重试。"); } else if (flag == "5") { showMsg(true, "图片尺寸超标!请换一张图片。"); } else if (flag == "6") { showMsg(true, "上传文件编码不正确!请换一张图片。"); } else { showMsg(true, "上传成功。"); sql = "insert into tb_Photo(uid,photoalbum,photoUrl) values(" + uid + ",'我的相册','" + flag + "')"; SqlConnection conn = new SqlConnection(connString); SqlCommand cmd = new SqlCommand(sql, conn); try { conn.Open(); if (cmd.ExecuteNonQuery() > 0) { showMsg(true, "上传图片成功,插入数据库成功。"); } } catch (Exception) { showMsg(true, "插入数据库出错!"); } finally { conn.Close(); } } } // 标签控件显示提示信息 public void showMsg(bool _show, string _info) { this.labMsg.Visible = _show; this.labMsg.Text = _info; } } 前台页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="webUpload.aspx.cs" Inherits="image_webUpload" %> <!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 runat="server"> <title>上传页面</title> </head> <body> <form id="form1" runat="server"> <div> 请上传尺寸小于60*60,小于100Kb的格式为.jpg/.gif/.png的图片 <asp:FileUpload ID="FileUpload1" runat="server" /><asp:Label ID="labMsg" runat="server" Text="提示信息" ForeColor="Red" Visible="False"></asp:Label> <asp:Button ID="btnOK" runat="server" Text="上 传" onclick="btnOK_Click" /> </div> </form> </body> </html>
试试其它关键字
上传图片
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
Dezai.CN
贡献的其它代码
(
4037
)
.
多线程Socket服务器模块
.
生成随机密码
.
清除浮动样式
.
弹出窗口居中
.
抓取url的函数
.
使用base HTTP验证
.
div模拟iframe嵌入效果
.
通过header转向的方法
.
Session操作类
.
执行sqlite输入插入操作后获得自动编号的ID
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3