练习文件保存按照日期来创建文件夹,并保存

上传页面:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form action="UploadStoreByDate.ashx" method="post" enctype="multipart/form-data">

<input type="file" name="file1" />
<input type="submit" value="上传" />
</form>

</body>
</html>
处理页面:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;

namespace Web1
{
/// <summary>
/// UploadStoreByDate 的摘要说明
/// </summary>
public class UploadStoreByDate : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{

context.Response.ContentType = "text/html";
context.Response.Write("<html><head><title>文件保存按日期</title></head><body>");

HttpPostedFile file1 = context.Request.Files["file1"];
if (file1.ContentLength <= 0)
{
context.Response.Write("请选择要上传的文件");
OutputHtmlEnd(context.Response);
return;
}
if (file1.ContentLength > 2 * 1024 * 1024)
{
context.Response.Write("只允许上传不大于1MB的文件");
OutputHtmlEnd(context.Response);
return;
}
string fileExt = Path.GetExtension(file1.FileName);//文件的扩展名
if (fileExt != ".zip" && fileExt != ".rar")
{
context.Response.Write("只允许上传zip、rar....文件");
OutputHtmlEnd(context.Response);
return;
}
string dirPath = DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day;//upload中建的目录按日期创建
string dirFullPath = context.Server.MapPath("~/upload/"+dirPath+"/");//建的目录全路径
string fileFullPath = Path.Combine(dirFullPath,file1.FileName);//一个文件全路径(带文件名)
if (!Directory.Exists(dirFullPath))//如果文件夹不存在,则先创建文件夹
{
Directory.CreateDirectory(dirFullPath);
}
file1.SaveAs(fileFullPath);
context.Response.Write("文件上传成功!");

}

private void OutputHtmlEnd(HttpResponse response)
{
response.Write("</body></html>");
}

public bool IsReusable
{
get
{
return false;
}
}
}
}
SqlHelper类:

using System;
using System.Data;
using System.Data.SqlClient;
using System.Web;

namespace Web1
{
public class SqlHelper
{
//连接字符创
private static readonly string connstr = "Data Source=.;Initial Catalog=Persons;Persist Security Info=True;User ID=sa;Password=123";

//执行查询,返回一张二维表 -----------(查)
public static DataTable ExecuteQuery(string sql, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);//连续添加
DataTable dt = new DataTable();//实例化一个表
using(SqlDataReader reader=cmd.ExecuteReader())
{
dt.Load(reader);//查询完一条记录就加载到实例化的表dt中
return dt;
}
}
}
//返回受影响的行数,引用外部的,一个连接,和传进来的参数 ------------(增。删。改)
public static int ExecuteNonQuery(string sql,params SqlParameter[] parameters)
{
using(SqlConnection conn=new SqlConnection(connstr))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();//返回该语句受影响的行数
}

}
public static object ExecuteScalar(string sql, params SqlParameter[] paramerters)
{
using(SqlConnection conn=new SqlConnection(connstr))
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = sql;
cmd.Parameters.AddRange(paramerters);
return cmd.ExecuteScalar();//返回该语句查找的对象
}
}

}
}

原文地址:https://www.cnblogs.com/DoNetCShap/p/9776581.html