文件上传,图片水印,验证码--2017年1月6日

文件上传:

要使用控件 - FileUpload
1、如何判断是否选中文件?
FileUpload.FileName -
选中文件的文件名,如果长度不大于0,那么说明没选中任何文件
js - f.value.length

2、如何保存到服务器上?
FileUpload.SaveAs("绝对路径");

3、如何获得绝对路径?
先编写相对路径 - "UpLoads/abc.txt"
将相对路径映射成绝对路径 - Server.MapPath("UpLoads/abc.txt");

4、现在只能上传成为txt文件,并且名字只能是abc
如何保留文件原有的名字和文件类型?
"UpLoads/" + FileUpload1.FileName;

5、如何防止重名覆盖的问题?
"UpLoads/" + Request.Cookies["user"].Value + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;

6、如何限制选中文件的类型?
限制普通人,给控件添加属性 - accept=".jpg,.png,.jpeg,.txt"
限制找事的:
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;
}
};

7、控制上传文件的大小
扩容 - 系统默认允许最大上传长度是4MB
webconfig配置文件中写入
<system.web>
<compilation debug="false" targetFramework="4.0" />
<httpRuntime maxRequestLength="40000" />
</system.web>

百度搜,研究,C#大文件上传,断点续传。

注意!不要扩的太多,否则多人同时上传大文件会造成服务器内存不足!

限制大小
C#端限制:
if (FileUpload1.PostedFile.ContentLength>(4*1024*1024))
{
Label1.Text = "文件长度过长!!!";
return;
}

JS端限制:
var f = document.getElementById("FileUpload1");

if (f.files[0].size > (4 * 1024 * 1024)) {
alert("文件过大!!!");
return false;
}

上传图片加水印:
绘制:

画布 - 多大             System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);
        Graphics g = Graphics.FromImage(img);
要画什么
        string s = "汉企奇点网络0928";

用什么字体画
        Font f = new Font("微软雅黑",20);

笔 - 颜色,粗细,样式
        Brush b = new SolidBrush(Color.Red);
        PointF p = new PointF(20,20);
画
        g.DrawString(s, f, b, p);

        string sss = "images/"+DateTime.Now.ToString("yyyyMMddhhmmssms")+FileUpload1.FileName;

        img.Save(Server.MapPath(sss));

        Image1.ImageUrl = sss;

图片验证制作:

前台:    <asp:Image ID="Image1" runat="server" ImageUrl="YZM.aspx" />

YZM.aspx后台:
     Bitmap img = new Bitmap(80, 40);
        Graphics g = Graphics.FromImage(img);
        Random r = new Random();

        List<Color> clist = new List<Color>();
        clist.Add(Color.Yellow);
        clist.Add(Color.Green);
        clist.Add(Color.Blue);
        clist.Add(Color.Pink);
        clist.Add(Color.Orange);
        clist.Add(Color.Black);

        g.FillRectangle(new SolidBrush(clist[r.Next(0, clist.Count)]), 0, 0, 80, 40);

        for (int i = 0; i < 10; i++)
        {
            Color ccc = clist[r.Next(0, clist.Count)];

            Pen ppp = new Pen(new SolidBrush(ccc), r.Next(1, 5));

            g.DrawLine(ppp, new PointF(r.Next(0, 80), r.Next(0, 40)), new PointF(r.Next(0, 80), r.Next(0, 40)));
        }

        string all = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
        string s = "";

        for (int i = 0; i < 4; i++)
        {
            int a = r.Next(all.Length);
            s += all.Substring(a, 1);
        }

        Session["YZM"] = s;

        g.DrawString(s, new Font("微软雅黑", 16), new SolidBrush(Color.Red), new PointF(3, 3));

        img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
        Response.End();

.

.

时间: 2024-08-11 11:43:56

文件上传,图片水印,验证码--2017年1月6日的相关文章

webform文件上传加水印

1.文件上传加水印 页面代码: 后台代码: 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 _Default : System.Web.UI.Page { protected void

文件上传,图片加水印

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

文件上传&amp;画水印

文件上传: //把相对路径变成绝对路径.string absolutePath = Server.MapPath(relativePath); FileUpload控件: 属性: FileName:文件名 HasFile:bool 是否选中了文件 FileBytes:要上传文件的二进制数据 方法: SaveAs(string 绝对路径):上传,另存为. 一.上传到硬盘文件夹(一)传单个文件 第一步:准备好文件及路径: //把之前在客户端的文件名给取出来 string fileName = Fil

关于文件上传-图片上传

本次开发采用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

文件上传加水印

在form表单写的代码(客户端源码) 'FileUpload'控件:选择文件用的,点击可以选择文件 'Image'控件:展示图片用的,所选的文件在这里展示 accept=".jpg,.png,.jpeg"图片文件加限制的属性 <form id="form1" runat="server"> <asp:FileUpload ID="FileUpload1" runat="server" ac

php 文件上传(图片)

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

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

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

3Python全栈之路系列之基于socket实现文件上传

Python全栈之路系列之基于socket实现文件上传 发布时间:2017年3月16日 00:04 浏览(106) 评论(0) 分类:Python 前言 此处没有前言 粘包 在实现发送文件功能之前我们先来理解下粘包的问题,下面有两张图,我觉得很清晰的就可以理解到了. 正常情况下发送文件 第一步: 客户端把获取到的文件总大小(size=65426)先放到缓冲区,然后发送给服务端 第二步: 此时客户端接收到的文件总大小就是65426 粘包的问题下发送文件 第一步: 客户端把获取到的文件总大小(siz