4.批量导入
<input name="file" type="file" id="file" />
<input type="submit" name="Upload" value="上传" />
/// <summary>
/// 批量导入
/// </summary>
/// <returns></returns>
[HttpPost]
public ActionResult ImportStu()
{
HttpPostedFileBase file = Request.Files["file"];
string FileName;
string savePath;
if (file == null || file.ContentLength <= 0)
{
return Content("<script>alert('上传失败,请选择上传文件!');location.href='/MyTest/MVCPager';</script>");
}
else
{
string filename = Path.GetFileName(file.FileName);
int filesize = file.ContentLength;//获取上传文件的大小单位为字节byte
string fileEx = System.IO.Path.GetExtension(filename);//获取上传文件的扩展名
string NoFileName = System.IO.Path.GetFileNameWithoutExtension(filename);//获取无扩展名的文件名
string FileType = ".xls,.xlsx";//定义上传文件的类型字符串
if (FileType.Contains(".exe"))//EXCEL
{
return Content("<script>alert('上传文件类型格式错误,不允许导入exe格式的文件!');location.href='/MyTest/MVCPager';</script>");
}
FileName = NoFileName + DateTime.Now.ToString("yyyyMMddhhmmss") + fileEx;
string path = AppDomain.CurrentDomain.BaseDirectory + "uploads/";
savePath = Path.Combine(path, FileName);
file.SaveAs(savePath);
if (FileType.Contains(fileEx))//EXCEL
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + savePath + ";" + "Extended Properties=Excel 8.0";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
OleDbDataAdapter myCommand = new OleDbDataAdapter("select * from [Sheet1$]", strConn);
DataSet myDataSet = new DataSet();
try
{
myCommand.Fill(myDataSet, "ExcelInfo");
}
catch (Exception ex)
{
return Content("<script>alert('上传失败," + ex.Message + "!');location.href='/MyTest/MVCPager';</script>");
}
//列顺序 标题 内容
DataTable table = myDataSet.Tables["ExcelInfo"].DefaultView.ToTable();
//事物 异常回滚
using (TransactionScope transaction = new TransactionScope())
{
for (int i = 0; i < table.Rows.Count; i++)
{
ArticleEntity model = new ArticleEntity();
model.Title = table.Rows[i][0].ToString();
model.Content = table.Rows[i][1].ToString();
new AchieveDAL.MyTestDAL().AddArticle(model);
}
transaction.Complete();
}
}
return RedirectToAction("MVCPager", "MyTest");
}
}
5.获取客户端的IP地址
/// <summary>
/// 获取客户端的IP地址
/// </summary>
/// <returns>客户端IP地址</returns>
public static string Get_ClientIP()
{
string result = string.Empty;
result = HttpContext.Current.Request.Headers["X-Real-IP"]; //Nginx 为前端时获取IP地址的方法
if (result != null)
return result;
if (HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"] != null)//发出请求的远程主机的IP地址
{
result = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
else if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)//判断是否设置代理,若使用了代理
{
if (HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"] != null)//获取代理服务器的IP
{
result = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
result = HttpContext.Current.Request.UserHostAddress;
}
}
else
{
result = HttpContext.Current.Request.UserHostAddress;
}
if (result == "::1")
result = string.Empty;
return result;
}










