文件上传,图片加水印

文件上传:

  所用控件:FileUpload

  使用时的思路:

  1、判断用户是否选中了文件

    FileUpload.FileName获取选中的文件名,判断长度,如果长度大于零就代表已经选择了文件

    JS端:通过ID获取控件,然后控件的value获取选中的文件名

  2、将文件保存到服务器上

    FileUpload.SaveAs("绝对路径");

  3、获得绝对路径

    先编写相对路径:比如"UpLoads/abc.txt"

    再把路径映射成绝对路径:Server.MapPath("UpLoads/abc.txt");

  4、保留原文件的类型和文件名

    相对路径改为"UpLoads/" + FileUpload1.FileName;

  5、防止文件重名覆盖的问题

    "UpLoads/" + Request.Cookies["user"].Value + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;

    也就是在文件名前面拼接上登陆的用户名以及操作的时间,精确到毫秒

  6、限制用户可选的文件类型

    给控件添加属性accept=".jpg,.png,.jpeg,.txt"

    但在打开的对话框中,仍然可以选择全部文件,只能通过JS端来限制: 

document.getElementById("Button1").onclick = function () {
        var fileName = document.getElementById("FileUpload1").value;

        var name = fileName.substr(fileName.length - 4, 4);
        var name1 = fileName.substr(fileName.length - 5, 5);
        if (name != ".jpg" && name != ".png" && name != ".txt" && name1 != ".jpeg")
        {
            alert("请选择正确的文件!");
            return false;
        }
    };

图片加水印:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="shuiyin.aspx.cs" Inherits="shuiyin" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="Button1" runat="server" Text="Button" />
            <asp:Image ID="Image1" runat="server" />
        </div>
    </form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
//一定要加上这个引用!

using System.Drawing;
public partial class shuiyin : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        //获得要上传的图片
        System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);
        //加上水印
        //把获得图片变成一个GDI画图图面,开始绘制
        Graphics g = Graphics.FromImage(img);
        //分别对应(水印内容,水印字体,水印颜色,水印位置)
        g.DrawString("哈哈哈", new Font("微软雅黑", 20), new SolidBrush(Color.Red), new PointF(0, 0));
        //保存图片
        //img指文件夹名称,后面给要加水印的文件重新命名
        string ul = "img/" + DateTime.Now.ToString("yyyyMMddHHmmssms") + FileUpload1.FileName;
        //保存并生成绝对路径
        img.Save(Server.MapPath(ul));
        //把效果展示出来看一下
        Image1.ImageUrl = ul;
    }
}

时间: 2024-12-25 09:12:13

文件上传,图片加水印的相关文章

图片上传,图片加水印,验证码制作

文件上传: 所用控件:FileUpload 使用时的思路: 1.判断用户是否选中了文件 FileUpload.FileName获取选中的文件名,判断长度,如果长度大于零就代表已经选择了文件 JS端:通过ID获取控件,然后控件的value获取选中的文件名 2.将文件保存到服务器上 FileUpload.SaveAs("绝对路径"); 3.获得绝对路径 先编写相对路径:比如"UpLoads/abc.txt" 再把路径映射成绝对路径:Server.MapPath(&quo

ASP.NET图片上传,加水印文字和水印图片!

看了清清月儿的这篇文章让自己受益匪浅,但是觉得还有一些问题.上传图片后还有原来的图片文件存在,觉得这样很不爽,调用file类的delete方法删除原来没有生成水印的图片另外自己又加了一个限制图片大小的函数 1.最简单的单文件上传(没花头) 效果图:说明:这是最基本的文件上传,在asp.net1.x中没有这个FileUpload控件,只有html的上传控件,那时候要把html控件转化为服务器控件,很不好用.其实所有文件上传的美丽效果都是从这个FileUpload控件衍生,第一个例子虽然简单却是根本

[原创]超强C#图片上传,加水印,自动生成缩略图源代码

<%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ Import Namespace=“System.IO“ %> <%@ Import Namespace=“System.Net“ %> <%@ Import NameSpace=“System.Web“ %> <%@ Import NameSpace=“Legalsof

关于文件上传-图片上传

本次开发采用uploader插件   需要在前台引入 使用该插件的 Uploader.swf文件(用于使用时js指向) 在wingsUploader.js 中对uploader插件进行设置 (function($) { // // 设置属性 var uploader; var ratio = window.devicePixelRatio || 1; //用于缩略图 // var thumbnailWidth = 50 * ratio; //缩略图的宽 // var thumbnailHeigh

spring 文件上传 + 图片缩放 + 图片截取(头像功能)

实现图片上传 用户必须能够上传图片,因此需要文件上传的功能.比较常见的文件上传组件有Commons FileUpload,这里我们选择Commons FileUpload. 首先是页面的form表单设置,记住要配method和enctype属性哦!! <form action="upload.do" method="post"            enctype="multipart/form-data">           &l

ExtJs4学习(十三)如何给文件上传按钮加背景图片

我们日常看到的上传按钮都是这样的 当然browse是默认的,我们可以去改变它,比如替换成"上传",配置为buttonText: '上传', 如果我们想给按钮添加背景图片呢,你可能注意到了这个配置 buttonConfig { xtype: 'filefield', emptyText: 'Select an image', fieldLabel: 'Photo', name: 'photo-path', buttonText: '', buttonConfig: { iconCls:

php 文件上传(图片)

<?php /****************************************************************************** 参数说明: $max_file_size : 上传文件大小限制, 单位BYTE $destination_folder : 上传文件路径 $watermark : 是否附加水印(1为加水印,其他为不加水印); 使用说明: 1. 将PHP.INI文件里面的"extension=php_gd2.dll"一行前面的;

上传附件加水印

/// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] indexedPixelFormats = { PixelFormat.Undefined, PixelFormat.DontCare, PixelFormat.Format16bppArgb1555, PixelFormat.Format1bppIndexed, PixelFormat.Format4bpp

HTTP上传 文件上传 图片上传 HTTP上传原理 文件上传原理 图片上传原理

1.概述 在最初的http协议中,没有上传文件方面的功能.rfc1867(http://www.ietf.org/rfc/rfc1867.txt )为http协议添加了这个功能.浏览器按照此规范将用户指定的文件发送到服务器.服务器再按照此规范,解析出文件.大部分的http server都支持此协议,比如tomcat(本文用的是Spring MVC,即HttpServelet来接收请求). 网上很多博客,以及插件的做法,是建一个iframe用户无刷新请求,再建一个form用于提交.但其实可以直接用