FileUpload控件上传类,水印添加

本文介绍了一个用于ASP.NET平台的文件上传组件,该组件支持上传文件、添加图片或文字水印,并具备文件类型与大小限制等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        上传文件是网站常用的操作之一,最近也刚好要找一些关于上传控件的东东。搜了很多好东西也不少,不过不是没有详尽的说明就是都是英文而已。曾经想研究一下swfupload,可鼓捣了很久还是无果,只有放弃(如果您有幸看到此文章且对swfupload有所了解,请告诉我一下)。后来看了自带的FileUpload控件,找到了一些网上的相应操作类,于是乎改动了一些属性和方法完成了此文章。当然,后来看了一下Neatupload控件,也可以应用此类操作,差别不大。

主要功能:上传文件,添加水印

 参考了http://www.cnblogs.com/wangergo/archive/2006/05/31/414239.html,其余部分来源未知

类文件如下

 

using  System;
using  System.Data;
using  System.Configuration;
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;
using  System.Drawing;
using  System.Drawing.Imaging;
using  System.Drawing.Drawing2D;


public   class  FilesUpload
{
    
public FilesUpload()
    
{
        
//
        
// TODO: 在此处添加构造函数逻辑
        
//
    }


    
//允许上传文件类型,"|"隔开
    private string uploadFileExt = "gif|jpg|jpeg|png|bmp|doc|xls|hlp|chm|rar|zip";
    
//允许上传文件大小,字节 为单位,默认4M
    private int uploadFileSize = 4 * 1024 * 1024;
    
//是否使用随机上传文件名
    private bool isUseRandFileName = true;
    
//是否添加水印
    private bool isAddWaterMark = true;
    
//添加水印类型(0为图片水印--默认,1为文字水印)
    private int waterMarkMode = 0;
    
//图片水印地址
    private string imageWaterMark = System.Web.HttpContext.Current.Server.MapPath("images/coal_logo.gif");
    
//图片/文字水印的水印位置(0为左上,1为右上,2为左下,3为右下--默认)
    private int waterMarkPos = 3;
    
//默认图片水印透明度
    private const float imageAlpha = 0.7f;
    
//图片水印的透明度
    private float imageWaterMarkAlpha = imageAlpha;
    
//文字水印的添加文字
    private string watermarkText = "hello the world !";

    

    
public string UploadFileExt
    
{
        
get
        
{
            
return uploadFileExt;
        }

        
set
        
{
            uploadFileExt 
= value;
        }

    }

    
public int UploadFileSize
    
{
        
get
        
{
            
return uploadFileSize;
        }

        
set
        
{
            uploadFileSize 
= value;
        }

    }

    
public bool IsUseRandFileName
    
{
        
get
        
{
            
return isUseRandFileName;
        }

        
set
        
{
            isUseRandFileName 
= value;
        }

    }

    
public bool IsAddWaterMark
    
{
        
get
        
{
            
return isAddWaterMark;
        }

        
set
        
{
            isAddWaterMark 
= value;
        }

    }

    
public int WaterMarkMode
    
{
        
get
        
{
            
return waterMarkMode;
        }

        
set
        
{
            waterMarkMode 
= value;
        }

    }

    
public string ImageWaterMark
    
{
        
get
        
{
            
return imageWaterMark;
        }

        
set
        
{
            imageWaterMark 
= System.Web.HttpContext.Current.Server.MapPath(value);
        }

    }

    
public int WaterMarkPos
    
{
        
get
        
{
            
return waterMarkPos;
        }

        
set
        
{
            waterMarkPos 
= value;
        }

    }

    
public string WatermarkText
    
{
        
get
        
{
            
return watermarkText;
        }

        
set
        
{
            watermarkText 
= value;
        }

    }

    
public float ImageWaterMarkAlpha
    
{
        
get
        
{
            
return imageWaterMarkAlpha;
        }

        
set
        
{
            imageWaterMarkAlpha 
= value;
        }

    }


    
取得文件后缀

    
检测文件是否合法

    
检测文件大小是否合法

    
确保文件名的唯一性,以免覆盖

    
重命名文件


    
保存文件

    
加入水印类型

    
加入图片水印


     
加入文字水印
}

 调用

protected   void  Button4_Click( object  sender, EventArgs e)
    
{
        
//Label1.Text = FilesUpload.Upload(Server.MapPath("UploadFiles/"), FileUpload2);
        FilesUpload upload = new FilesUpload();
        upload.UploadFileExt 
= "jpg|gif";               //  允许上传文件格式,"|"分隔(默认gif|jpg|jpeg|png|bmp|doc|xls|hlp|chm|rar|zip)
        upload.UploadFileSize = 1 * 1024 * 1024 ;       //  允许上传文件大小,int型,单位字节(默认4M)
        
//upload.IsUseRandFileName = false;             //  是否随机获取文件名(默认 true)
        
//upload.IsAddWaterMark = false;                //  是否添加水印(默认 true)
        
//upload.WaterMarkMode = 1;                     //  水印类型,0为图片水印,1为文字水印(默认 0)
        upload.ImageWaterMark = @"images/face/0.gif";  //  图片水印地址(相对路径)
        upload.WaterMarkPos = 2;                      //  图片/文字水印的水印位置 0为左上,1为右上,2为左下,3为右下(默认 3)
        upload.ImageWaterMarkAlpha = 0.5f;              //  图片水印透明度,0-1的浮点型数字,不在此范围则取默认值(默认 0.7f)
        
//upload.WatermarkText = "www.xkxm.com!";     //  文字水印的添加文字(默认 hello the world !)

        Label1.Text 
= upload.Upload("UploadFiles", FileUpload2);
    }

 

 

        再次声明,此类来源于网络,可实在是找不到出处了,我只是做了自己需要的修改,而且感觉也不够完善,以后会继续更新。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值