標籤:return filename time 相對 畫布 引用 一個 tostring 上傳檔案
在form表單寫的代碼(用戶端源碼)
‘FileUpload’控制項:選擇檔案用的,點擊可以選擇檔案
‘Image’控制項:展示圖片用的,所選的檔案在這裡展示
accept=".jpg,.png,.jpeg"圖片檔案加限制的屬性
<form id="form1" runat="server"> <asp:FileUpload ID="FileUpload1" runat="server" accept=".jpg,.png,.jpeg" /> <asp:Button ID="Button1" runat="server" Text="上傳" /> <asp:Image ID="Image1" runat="server" /> </form>
在後台服務端寫按鈕的點擊事件
‘FileUpload1.SaveAs(這裡面放的是一個路徑);’
建立一個檔案夾,把所有的上傳檔案都放在這個檔案夾裡
//判斷控制項是否選中,如果是非選中的話,直接‘return’走 if (!FileUpload1.HasFile) return; //為了防止重名的問題,在前面加上上傳的時間 string path = "uploads/"+DateTime.Now.ToString("yyyyMMddHHssms")+FileUpload1.FileName; //Server.MapPath()路徑映射,映射成絕對路徑,把誰映射?把‘path’映射 FileUpload1.SaveAs(Server.MapPath(path)); //上傳上之後,在介面上展示出來 Image1.ImageUrl = path; //這裡是相對路徑
以上是檔案的基本上傳,還沒有加上浮水印
圖片浮水印:
using System.Drawing; 首先的先引用一個畫畫的類(命名空間)這樣可以使用各種畫畫的類,進行畫畫
然後,準備畫布:System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);
畫畫是在哪裡畫 :Graphics g = Graphics.FromImage(img);
protected void Page_Load(object sender, EventArgs e) { Button1.Click += Button1_Click; } void Button1_Click(object sender, EventArgs e) { if (!FileUpload1.HasFile) return; //畫布 System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); //在哪張圖上畫 Graphics g = Graphics.FromImage(img); //要畫什麼東西(內容) string s = "漢企奇點網路0504專用章"; //字型 Font f = new Font("黑體", 20); //畫筆 Brush b = new SolidBrush(Color.Red); //座標軸 PointF p = new PointF(10, 10); //把參數放上 g.DrawString(s,f,b,p); string path = "uploads/" + DateTime.Now.ToString("yyyyMMddHHmmssms") + FileUpload1.FileName; img.Save(Server.MapPath(path)); Image1.ImageUrl = path; }
如果是把兩張圖片進行疊加的話,需要改一個屬性
g.DrawString()改成 g.DrawImage()
//兩張圖片疊加 g.DrawImage(System.Drawing.Image.FromFile(Server.MapPath("uploads/222.png")), p);
檔案上傳加浮水印