檔案上傳,圖片加浮水印

來源:互聯網
上載者:User

標籤:generic   問題   檔案的   datetime   sub   微軟   text   http   date   

檔案上傳:

  所用控制項: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;    }}

 

檔案上傳,圖片加浮水印

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.