当前位置导航:炫浪网>>网络学院>>网页制作>>ASP.NET教程

使用FileUpload控件上传图片并自动生成缩略图

欢迎进入.NET社区论坛,与200万技术人员互动交流 >>进入

     本文借助vs2005中自带的FileUpload控件实现图片文件的上传并生成缩略图。
   实现过程:选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。
   代码如下:
   upfile.aspx文件
  <%@ Page Language="C#" AutoEventWireup="true" CodeFile="upfile.aspx.cs" Inherits="upfile_upfile" %>
  
  <!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:FileUpload ID="FileUpload1" runat="server" />
   <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" /><br />
   <asp:Label ID="Label1" runat="server"></asp:Label></div>
   </form>
  </body>
  </html>
   upfile.aspx.cs文件
  using System;
  using System.Data;
  using System.Configuration;
  using System.Collections;
  using System.Web;
  using System.Web.Security;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  using System.Web.UI.WebControls.WebParts;
  using System.Web.UI.HtmlControls;
  using System.IO;
  
  public partial class upfile_upfile : System.Web.UI.Page
  {
   protected void Page_Load(object sender, EventArgs e)
   { }
  
   protected void Button1_Click(object sender, EventArgs e)
   {
   if (FileUpload1.HasFile)
   {
   string fileContentType = FileUpload1.PostedFile.ContentType;
   if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
   {
   string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
  
   FileInfo file = new FileInfo(name);
   string fileName = file.Name; // 文件名称
   string fileName_s = "s_" + file.Name; // 缩略图文件名称
   string fileName_sy = "sy_" + file.Name; // 水印图文件名称(文字)
   string fileName_syp = "syp_" + file.Name; // 水印图文件名称(图片)
   string webFilePath = Server.MapPath("file/" + fileName); // 服务器端文件路径
   string webFilePath_s = Server.MapPath("file/" + fileName_s);  // 服务器端缩略图路径
   string webFilePath_sy = Server.MapPath("file/" + fileName_sy); // 服务器端带水印图路径(文字)
   string webFilePath_syp = Server.MapPath("file/" + fileName_syp); // 服务器端带水印图路径(图片)
   string webFilePath_sypf = Server.MapPath("file/shuiyin.jpg?http://www.xvna.com"); // 服务器端水印图路径(图片)
  
   if (!File.Exists(webFilePath))
   {
   try
   {
   FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
   AddShuiYinWord(webFilePath, webFilePath_sy);
   AddShuiYinPic(webFilePath, webFilePath_syp, webFilePath_sypf);
   MakeThumbnail(webFilePath, webFilePath_s, 130, 130, "Cut"); // 生成缩略图方法
   Label1.Text = "提示:文件“" + fileName + "”成功上传,并生成“" + fileName_s + "”缩略图,文件类型为:" + FileUpload1.PostedFile.ContentType + ",文件大小为:" + FileUpload1.PostedFile.ContentLength + "B";
   }
   catch (Exception ex)
   {
   Label1.Text = "提示:文件上传失败,失败原因:" + ex.Message;
   }
   }
   else
   {
   Label1.Text = "提示:文件已经存在,请重命名后上传";
   }
   }
   else
   {
   Label1.Text = "提示:文件类型不符";
   }
   }
   }
 

相关内容
赞助商链接