Asp.net FileUpload+Image制作头像效果示例代码_实用技巧

在Web开发中会经常使用到个人信息注册,而个人信息中通常需要自己的头像或者照片。今天主要介绍一下使用FileUpload+img控件上传照片。

FileUpLoad控件使用介绍
FileUpLoad控件的PostedFile属性主要获取上传文件的一些基础信息。

.ContentLength
获取上传文件的大小。返回值为int类型,单位为字节。
用途
1、判断上传文件的大小
if (this.FileUpload1.PostedFile.ContentLength <= 4000000) //4M
{
Response.Write("<script>alert('" +FileUpload1.PostedFile.ContentLength + "')</script>");
}
else
{
Response.Write("<script>alert('太大了不能上传!')</script>");
}
其中FileUpload1是上传控件的ID,this.FileUpload1.PostedFile.ContentLength是上传文件的大小
2、修改ASP.NET上传的默认值
ASP.NET的默认最大上传值是4M,通过修改web.config,可以实现上传大文件:

复制代码 代码如下:

<system.web>
<httpRuntime maxRequestLength="4096"//这里的4096就是4m,原先是默认的。你改一下这个,就可以了。
executionTimeout="3600"
/>
</system.web>

.ContentType
获取上传文件的MIME内容类型。PostedFile.ContentType这个属性通常用来判断上传文件的MIME类型,我们通常以此来拒绝某些类型的上传,比如仅允许上传图像文件,或者指定固定图片的格式。

在net,做上传文件判断文件格式的写法总结:

复制代码 代码如下:

".*"="application/octet-stream"
".001"="application/x-001"
".301"="application/x-301"
".323"="text/h323"
".906"="application/x-906"
".907"="drawing/907"
".a11"="application/x-a11"
".acp"="audio/x-mei-aac"
".ai"="application/postscript"
".aif"="audio/aiff"
".aifc"="audio/aiff"
".aiff"="audio/aiff"
".anv"="application/x-anv"
".asa"="text/asa"
".asf"="video/x-ms-asf"
".asp"="text/asp"
".asx"="video/x-ms-asf"
".au"="audio/basic"
".avi"="video/avi"
".awf"="application/vnd.adobe.workflow"
".biz"="text/xml"
".bmp"="application/x-bmp"
".bot"="application/x-bot"
".c4t"="application/x-c4t"
".c90"="application/x-c90"
".cal"="application/x-cals"
".cat"="application/vnd.ms-pki.seccat"
".cdf"="application/x-netcdf"
".cdr"="application/x-cdr"
".cel"="application/x-cel"
".cer"="application/x-x509-ca-cert"
".cg4"="application/x-g4"
".cgm"="application/x-cgm"
".cit"="application/x-cit"
".class"="java/*"
".cml"="text/xml"
".cmp"="application/x-cmp"
".cmx"="application/x-cmx"
".cot"="application/x-cot"
".crl"="application/pkix-crl"
".crt"="application/x-x509-ca-cert"
".csi"="application/x-csi"
".css"="text/css"
".cut"="application/x-cut"
".dbf"="application/x-dbf"
".dbm"="application/x-dbm"
".dbx"="application/x-dbx"
".dcd"="text/xml"
".dcx"="application/x-dcx"
".der"="application/x-x509-ca-cert"
".dgn"="application/x-dgn"
".dib"="application/x-dib"
".dll"="application/x-msdownload"
".doc"="application/msword"
".dot"="application/msword"
".drw"="application/x-drw"
".dtd"="text/xml"
".dwf"="Model/vnd.dwf"
".dwf"="application/x-dwf"
".dwg"="application/x-dwg"
".dxb"="application/x-dxb"
".dxf"="application/x-dxf"
".edn"="application/vnd.adobe.edn"
".emf"="application/x-emf"
".eml"="message/rfc822"
".ent"="text/xml"
".epi"="application/x-epi"
".eps"="application/x-ps"
".eps"="application/postscript"
".etd"="application/x-ebx"
".exe"="application/x-msdownload"
".fax"="image/fax"
".fdf"="application/vnd.fdf"
".fif"="application/fractals"
".fo"="text/xml"
".frm"="application/x-frm"
".g4"="application/x-g4"
".gbr"="application/x-gbr"
".gcd"="application/x-gcd"
".gif"="image/gif"
".gl2"="application/x-gl2"
".gp4"="application/x-gp4"
".hgl"="application/x-hgl"
".hmr"="application/x-hmr"
".hpg"="application/x-hpgl"
".hpl"="application/x-hpl"
".hqx"="application/mac-binhex40"
".hrf"="application/x-hrf"
".hta"="application/hta"
".htc"="text/x-component"
".htm"="text/html"
".html"="text/html"
".htt"="text/webviewhtml"
".htx"="text/html"
".icb"="application/x-icb"
".ico"="image/x-icon"
".ico"="application/x-ico"
".iff"="application/x-iff"
".ig4"="application/x-g4"
".igs"="application/x-igs"
".iii"="application/x-iphone"
".img"="application/x-img"
".ins"="application/x-internet-signup"
".isp"="application/x-internet-signup"
".IVF"="video/x-ivf"
".java"="java/*"
".jfif"="image/jpeg"
".jpe"="image/jpeg"
".jpe"="application/x-jpe"
".jpeg"="image/jpeg"
".jpg"="application/x-jpg"
".js"="application/x-javascript"
".jsp"="text/html"
".la1"="audio/x-liquid-file"
".lar"="application/x-laplayer-reg"
".latex"="application/x-latex"
".lavs"="audio/x-liquid-secure"
".lbm"="application/x-lbm"
".lmsff"="audio/x-la-lms"
".ls"="application/x-javascript"
".ltr"="application/x-ltr"

.FileName
获取上传文件的完整路径及名称。此路径为改文件所在在客户端文件中的路径。通常用这个属性来获取上传文件的名称并保保存。
.FileUpload1.SaveAs
将上传文件保存到指定路径的文件下。通常借助Server.MapPath()方法保存文件到服务器指定文件下。(获取Web服务器指定虚拟路径相对应的物理文件路径)
图片上传实例
FileUpload+Image控件实现上传指定图片大小、格式、保存到指定路径文件下。
.axps

复制代码 代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Fileup.aspx.cs" Inherits="Testcookie.Fileup" %>
<!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>
<asp:Image ID="Image1" runat="server" Height="180px" Width="191px" ImageUrl="~/Photo/untitled.png" />
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="btnupload" runat="server" Text="Button" onclick="btnupload_Click<SPAN style="FONT-FAMILY: Arial, Helvetica, sans-serif">" /></SPAN>
<asp:Button ID="btndelete" runat="server" Text="Button" onclick="btndelete_Click" />
</div>
</form>
</body>
</html>

.axps.cs

复制代码 代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Testcookie
{
public partial class Fileup : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnupload_Click(object sender, EventArgs e)
{
int length= this.FileUpload1.PostedFile.ContentLength;//<SPAN style="COLOR: #ff0000">获取图片大小,以字节为单位</SPAN>
if(length<4000)
{
Response.Write("<script language='javascript'>alert('您选择的图片过大!');</script>");
}
else{
String type=this.FileUpload1.PostedFile.ContentType;//<SPAN style="COLOR: #ff0000">获取上传文件类型</SPAN>
String fullfilename = this.FileUpload1.PostedFile.FileName;//<SPAN style="COLOR: #ff0000">获取上传文件在客户端的路径及名称</SPAN>
String filename = fullfilename.Substring(fullfilename.LastIndexOf("\\")+1);
String extensions = filename.Substring(filename.LastIndexOf (".")+1);//<SPAN style="COLOR: #ff0000">获取文件扩展名</SPAN>
string name=DateTime.Now.ToString("yyyyMMddHHmmss");
if (type == "image/jpeg" || type == "image/png" )//限制上传格式
{
this.FileUpload1.SaveAs(Server.MapPath("Photo") + "\\" + name + "." + extensions);//<SPAN style="COLOR: #ff0000">将图片以当前时间命名保存,避免上传图片命名重复</SPAN>
<SPAN style="COLOR: #ff0000">//设置上传图片大小为原图片大小</SPAN>
//System.Drawing.Image img = System.Drawing.Image.FromFile(this.Server.MapPath("Photo") + "\\" + name + "." + extensions);//获得图片文件
//int width = img.Width;
//this.Image1.Width = width;//这是宽设置Image控件的宽度为图片宽度
//int height = img.Height;
//this.Image1.Height = height;//这是高,设置Image控件的高度为图片的高度
this.Image1.ImageUrl = "Photo/" + name + "." + extensions;
}
else
{
Response.Write("<script language='javascript'>alert('您选择的图片有误!');</script>");
}
}
}
protected void btndelete_Click (object sender, EventArgs e)
{
<SPAN style="COLOR: #ff0000">//删除图片</SPAN>
if (System.IO.File.Exists(Server.MapPath("Photo")+"\\20130808084433.PNG"))
{
try
{
System.IO.File.Delete(Server.MapPath("Photo") + "\\20130808084433.PNG");
}
catch
{
throw new Exception("文件删除失败!");
}
}
}
}
}

效果
文件上传前
 
文件上传后

时间: 2024-10-06 05:17:38

Asp.net FileUpload+Image制作头像效果示例代码_实用技巧的相关文章

asp.net网站实现接入QQ登录示例代码_实用技巧

话不多说,直接上代码吧: string client_id = "分配的APP ID"; string appid = " 分配的 APP KEY"; string Return_url = "返回处理的url"; public string Authorize() { string state = new Random(100000).Next(99, 99999).ToString();//随机数 HttpHelper http = new

asp.net直接Response输出WML页面示例代码_实用技巧

复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "text/vnd.wap.wml"; StringBuilder builder = new StringBuilder(); builder.AppendLine("<?xml version=\"1.0\" encoding=\"UTF-8\" ?&

实现Asp.net mvc上传头像加剪裁功能_实用技巧

在我们使用QQ上传头像,注册用户账号时是不是都会遇到上传图像,并根据自己的要求对图像进行裁剪,这是怎么实现的呐? 本文主要介绍了Asp.net mvc实现上传头像加剪裁功能,分享给大家供大家参考.具体如下:  运行效果截图如下: 具体代码如下: 前台代码 <link href="~/Content/fineuploader.css" rel="stylesheet" /> <link href="~/Content/jquery.Jcro

ASP.NET动态生成静态页面的实例代码_实用技巧

最近突然想把项目中新闻管理模块做成静态页,在网上找到很多很好的文章,在这里记录一下,现在只是实现静态页面的生成并没有实现分页功能.其主要原理就是读取数据库的数据然后替换掉静态模板页的内容.首先制作一个模板页,暂时命名为template.htm,示例代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-trans

支持Ajax跨域访问ASP.NET Web Api 2(Cors)的示例教程_实用技巧

随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细.比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑.注意,这里是两个Web网站项目了,前端项目主要负责界面的呈现和一些前端的相应业务逻辑处理,而Web Api则负责提供数据. 这样问题就来了,如果前端通过ajax访问Web Api项目话,就涉及到跨域了.我们知道,如果直接访问,正常情况下Web Api是不允许这样做的,这涉及到安全问题.所以,今天我们这篇文章的主

Asp.net在线备份、压缩和修复Access数据库示例代码_实用技巧

1.问题的提出 在设计中小型Web应用程序时,可以选择Microsoft Accesss为数据库.在数据库的使用过程中经常性进行增加和删除操作.事实上,Microsoft Access并不能有效地释放已分配的但被删除的对象空间,这将意味着即使你删除了一个对象,而这个对象仍然占据着数据库的空间,使得数据库越来越大.不但占用不必要的空间,而且降低了数据库的效率.特别在虚拟站点上的问题尤为突出.因此对Access数据库进行压缩瘦身很有实际意义. 虽然Access数据库自身具有"压缩和修复数据库&quo

jsp和asp.net共享session值示例代码_实用技巧

思路是ASP.NET中序列化Session以二进制数据保存到数据库,然后由JSP读取数据库中的二进制数据反序列化成Session对象,再强制转化成的Session对象,在JAVA端转换时,出现了错误,找遍网上的资料也没能解决,故采用一种替换的方式. 替换的方式的思路: 登录的ASPX文件中,在登录成功后将Session中的变量值保存到数据库中的一张表,关键字使用ASP.NET的Session对象的SessionID,然后建立一个ASPX文件,取得当前登录用户的SessionID,并使用的ASP.

asp.net上传execl文件后,在页面上加载显示(示例代码)_实用技巧

复制代码 代码如下:     #region 上传Execl文件    protected void Button1_Click(object sender, EventArgs e)    {        if (FileUpload1.HasFile)        {            string NewFileName = string.Empty;            string ErrorMess = UpLoadFile(FileUpload1, ".xls|.xlsx

ASP.NET中读取XML文件信息的4种方法与示例代码_实用技巧

方法一 :使用XML控件 <% @ Page Language="C#"%> <html> <body>          <h3><font face="Verdana">读取XML方法一</font></h3>        <from runat=server>         <asp:Xml id="xml1" DocumentSour