bremen_short_url/App_Code/globalClass.cs

344 lines
10 KiB
C#
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Runtime.Serialization.Json;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Web.Services.Protocols;
using System.Security.Cryptography;
using System.Text;
using System.Web.SessionState;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing;
using System.IO;
using System.Data.SqlClient;
using System.Configuration;
using System.Net;
using System.Text.RegularExpressions;
/// <summary>
/// globalClass 的摘要描述
/// </summary>
public static class globalClass
{
public static bool isURL(string url)
{
return Uri.IsWellFormedUriString(url, UriKind.Absolute);
}
public static string GetIPAddress()
{
System.Web.HttpContext context = System.Web.HttpContext.Current;
string sIPAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(sIPAddress))
{
return context.Request.ServerVariables["REMOTE_ADDR"];
}
else
{
string[] ipArray = sIPAddress.Split(new Char[] { ',' });
return ipArray[0];
}
}
public static Boolean Base64ToFile(string base64String, string filePath) {
Boolean ret = false;
try
{
byte[] imageBytes = Convert.FromBase64String(base64String.Replace("data:image/png;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "").Replace("data:application/pdf;base64,", "").Replace("data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,", ""));
File.WriteAllBytes(filePath, imageBytes);
ret = true;
}
catch {
ret = false;
}
return ret;
}
public static System.Drawing.Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String.Replace("data:image/png;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", ""));
MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
System.Drawing.Image image__1 = System.Drawing.Image.FromStream(ms, true);
return image__1;
}
public static Stream Base64ToStream(string base64String)
{
Stream newReturn;
try
{
byte[] imageBytes = Convert.FromBase64String(base64String.Replace("data:image/png;base64,", "").Replace("data:image/jpg;base64,", "").Replace("data:image/jpeg;base64,", "").Replace("data:application/pdf;base64,", "").Replace("data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64,", ""));
//File.WriteAllBytes(filePath, imageBytes);
newReturn = new MemoryStream(imageBytes);
}
catch
{
newReturn = null;
}
return newReturn;
}
// 取得網址圖片
public static System.Drawing.Image DownloadImageFromUrl(string imageUrl)
{
System.Drawing.Image image = null/* TODO Change to default(_) if this is not a reference type */;
try
{
System.Net.HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(imageUrl);
webRequest.AllowWriteStreamBuffering = true;
webRequest.Timeout = 30000;
System.Net.WebResponse webResponse = webRequest.GetResponse();
System.IO.Stream stream = webResponse.GetResponseStream();
image = System.Drawing.Image.FromStream(stream);
webResponse.Close();
}
catch (Exception ex)
{
return null/* TODO Change to default(_) if this is not a reference type */;
}
return image;
}
public static System.Drawing.Image fileToImage(System.IO.Stream fileContent)
{
try
{
System.Drawing.Image imgObj;
long fileLength = fileContent.Length;
byte[] imageBuffer = new byte[fileLength - 1 + 1];
fileContent.Read(imageBuffer, 0, System.Convert.ToInt32(fileLength));
// 將圖片塞進MemoryStream
MemoryStream inputMS = new MemoryStream(imageBuffer);
imgObj = System.Drawing.Image.FromStream(inputMS);
return imgObj;
}
catch
{
return null/* TODO Change to default(_) if this is not a reference type */;
}
}
public static System.Drawing.Image markImage(System.Drawing.Image backImg, System.Drawing.Image waterImg)
{
// 設定背景圖片
Graphics gr = System.Drawing.Graphics.FromImage(backImg);
float newP = float.Parse(backImg.Width.ToString()) / 720f;
float newWH = 72f * newP;
int newWidthHeight = Convert.ToInt32(newWH);
Bitmap waterLogo = new Bitmap(waterImg);
//新建logo浮水印圖片
Bitmap Logo = ScaleImage(waterLogo, newWidthHeight, newWidthHeight);
gr.DrawImage(Logo, (backImg.Width - Logo.Width) / 2, (backImg.Height - Logo.Height) / 2);
gr.Dispose();
return backImg;
}
public static System.Drawing.Image resizeImage(System.Drawing.Image img, int newWidth, int newHeight)
{
Bitmap imageOutput = new Bitmap(img, newWidth, newHeight);
Image oimg = (Image)imageOutput;
return oimg;
}
public static Bitmap ScaleImage(Bitmap pBmp, int pWidth, int pHeight)
{
try
{
Bitmap tmpBmp = new Bitmap(pWidth, pHeight);
Graphics tmpG = Graphics.FromImage(tmpBmp);
//tmpG.InterpolationMode = InterpolationMode.HighQualityBicubic;
tmpG.DrawImage(pBmp,
new Rectangle(0, 0, pWidth, pHeight),
new Rectangle(0, 0, pBmp.Width, pBmp.Height),
GraphicsUnit.Pixel);
tmpG.Dispose();
return tmpBmp;
}
catch
{
return null;
}
}
public static Stream ToStream(this Image image, ImageFormat format)
{
var stream = new System.IO.MemoryStream();
image.Save(stream, format);
stream.Position = 0;
return stream;
}
public static string CreateRandomCode(int Number)
{
string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z";
string[] allCharArray = allChar.Split(',');
string randomCode = "";
Random rand = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i <= Number - 1; i++)
{
int t = rand.Next(allCharArray.Length);
randomCode += allCharArray[t];
}
return randomCode;
}
public static string CreateCaseRandomCode(int Number)
{
string allChar = "1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,P,Q,R,S,T,U,V,W,X,Y,Z,a,b,c,d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z";
string[] allCharArray = allChar.Split(',');
string randomCode = "";
Random rand = new Random(Guid.NewGuid().GetHashCode());
for (int i = 0; i <= Number - 1; i++)
{
int t = rand.Next(allCharArray.Length);
randomCode += allCharArray[t];
}
return randomCode;
}
public static bool IsDate(string strDate)
{
try
{
DateTime.Parse(strDate);
return true;
}
catch
{
return false;
}
}
public static string getPageData(string url)
{
if (url == null || url.Trim() == "")
return "";
try {
WebClient wc = new WebClient();
wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;");
wc.Credentials = CredentialCache.DefaultCredentials;
Byte[] pageData = wc.DownloadData(url);
return Encoding.UTF8.GetString(pageData);//.ASCII.GetString
}
catch (Exception ex)
{
return "";
}
}
public static Image getUrlPic(string url) {
if (url == null || url.Trim() == "")
return null;
try
{
WebClient wc = new WebClient();
wc.Headers.Add(HttpRequestHeader.UserAgent, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;");
wc.Credentials = CredentialCache.DefaultCredentials;
System.IO.MemoryStream Ms = new System.IO.MemoryStream(wc.DownloadData(url));
Image img = Image.FromStream(Ms);
return img;
}
catch (Exception ex)
{
return null;
}
}
public static bool IsNumeric(string anyString)
{
if (anyString == null)
{
anyString = "";
}
if (anyString.Length > 0)
{
double dummyOut = new double();
System.Globalization.CultureInfo cultureInfo =
new System.Globalization.CultureInfo("en-US", true);
return Double.TryParse(anyString, System.Globalization.NumberStyles.Any,
cultureInfo.NumberFormat, out dummyOut);
}
else
{
return false;
}
}
public static string getLocalBaseDomain()
{
return HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority;
}
public static string getLocalDomain()
{
return HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath.TrimEnd('/');
}
public static void AddScriptToHead(this System.Web.UI.HtmlControls.HtmlHead h, string script, bool AddScriptTags)
{
System.Web.UI.WebControls.Literal l = new System.Web.UI.WebControls.Literal();
if (AddScriptTags)
{
l.Text = @"<script type=""text/javascript"">      
                    //<![CDATA["
+ script +
@"//]]>      
                    </script>";
}
else
{
l.Text = script;
}
h.Controls.Add(l);
}
}