您目前尚未登陆,请选择【登陆】或【注册
首页->上传下载->多用户文件上传管理程序源码>>userfile.ascx.cs>>源码在线查看
温馨提示:代码在线浏览功能只能做为源码浏览参考,如果想更进一步了解该代码请下载:多用户文件上传管理程序源码
当前文件:文件类型 FileSystem/userfile.ascx.cs打开代码结构图
普通视图
		            
1using System; 2using System.Data; 3using System.Configuration; 4using System.Collections; 5using System.Web; 6using System.Web.Security; 7using System.Web.UI; 8using System.Web.UI.WebControls; 9using System.Web.UI.WebControls.WebParts; 10using System.Web.UI.HtmlControls; 11using System.IO; 12using System.Data.SqlClient; 13 14public partial class userfile : System.Web.UI.UserControl 15{ 16 string msgtext = "";//操作出错或时显示的变量 17 bool isvip = Roles.IsUserInRole("vip");//获取当前用户是不是可以匿名访问的用户 18 protected void Page_Load(object sender, EventArgs e) 19 { 20 if (!IsPostBack) 21 { 22 this.Panel1.Attributes.Add("style", "float:left");//诶,找不到设置float样式的地方,只能这样搞了 23 ViewState["username"]=Membership.GetUser().UserName; 24 ViewState["root"] = ViewState["rootpath"] = Server.MapPath("./" + this.DropDownList1.SelectedValue + "/" + ViewState["username"]);//得到当前用户默认的跟路径 25 this.Panel1.Visible = isvip;//是否可以使用VIP功能 26 bindgv();//只绑定一次,否则对文件操作后重新绑定时,对控件绑定两次将会报"回发或回调参数无效"的错误 27 } 28 } 29 //上传按钮的操作 30 protected void Buttonup_Click(object sender, EventArgs e) 31 { 32 string fn = this.FileUpload1.FileName; 33 if (fn.Length < 1) this.msg.Text = "请选择文件后在上传"; 34 else 35 { 36 bool bl = true;//默认标识:可以上传 37 string thiskzm = fn.Substring(fn.LastIndexOf('.'));//获取上传的文件扩展名 38 //说明各等级用户 不可以上传的文件类型 39 string[] vip = { "" }; 40 string[] user ={ ".php", ".aspx",".cs" }; 41 string[] kzms = isvip ? vip : user; 42 foreach (string kzm in kzms) 43 { 44 if (thiskzm.Equals(kzm, StringComparison.OrdinalIgnoreCase)) 45 { 46 bl = false; 47 break; 48 } 49 } 50 if (bl)//表示找到了与不合法的文件类型 51 { 52 string fp = ViewState["rootpath"].ToString() + "/" + fn; 53 if (this.CheckBox1.Checked) 54 this.FileUpload1.SaveAs(fp); 55 else if (File.Exists(fp)) 56 msgtext = "有同名的文件存在"; 57 else this.FileUpload1.SaveAs(fp); 58 this.bindgv(); 59 } 60 else this.msg.Text = "上传的文件类型不正确"; 61 } 62 this.msg.Visible = this.msg.Text.Length > 1; 63 } 64 65 //实例化一个可供DataSet增加用的数据表,然后通过DataSet把数据绑定到GridView中显示 66 private void bindgv() 67 { 68 if (!Directory.Exists(ViewState["rootpath"].ToString())) 69 Directory.CreateDirectory(ViewState["rootpath"].ToString()); 70 DirectoryInfo di = new DirectoryInfo(ViewState["rootpath"].ToString()); 71 DataTable DT = new DataTable(); 72 DT.Columns.Add("filename"); 73 DT.Columns.Add("filesize"); 74 DT.Columns.Add("writetime"); 75 DT.Columns.Add("fileurl"); 76 //Response.Write(DT.Columns.Count+"列"); 77 foreach (DirectoryInfo s in di.GetDirectories()) 78 { 79 DT.Rows.Add(s.Name, "", gettime(s.LastWriteTime), ViewState["rootpath"].ToString() + s.Name); 80 } 81 foreach (FileInfo f in di.GetFiles())//将每条信息遍历到表里 82 { 83 long length = 0; 84 length = f.Length;//计算文件大小,老是计算为0???... 85 DT.Rows.Add(f.Name, Convert.ToString(length)+"字节", gettime(f.LastWriteTime), ViewState["rootpath"].ToString()+"/"+f.Name); 86 } 87 //然后将表添加到内存数据库里, 绑定出来 88 DataSet ds = new DataSet(); 89 ds.Tables.Add(DT); 90 this.GridView1.DataKeyNames = new string[]{ "filename" }; 91 this.GridView1.DataSource = ds; 92 this.GridView1.DataBind(); 93 DT.Clear(); 94 if(msgtext=="") 95 msgtext += this.GridView1.Rows.Count < 1 ? "<br />没有任何文件和文件夹" : ""; 96 this.msg.Text = msgtext; 97 this.msg.Visible = msgtext != "" ? true : false; 98 } 99 private string gettime(DateTime sj) 100 { 101 return sj.Year + "/" + sj.Month + "/" + sj.Day + " " + sj.Hour + "" + sj.Minute; 102 } 103 104 //建立文件夹操作 105 protected void Button1_Click(object sender, EventArgs e) 106 { 107 Directory.CreateDirectory(ViewState["rootpath"].ToString() + "/" + this.TextBox1.Text); 108 bindgv(); 109 } 110 111 //当点击了GridView1的删除操作 112 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) 113 { 114 string path = ViewState["rootpath"].ToString() + "/" + this.GridView1.DataKeys[e.RowIndex].Value.ToString(); 115 if (Directory.Exists(path)) 116 if (Directory.GetDirectories(path).Length < 1 && Directory.GetFiles(path).Length < 1) 117 Directory.Delete(path); 118 else msgtext = "目录不是空的"; 119 else File.Delete(path); 120 bindgv(); 121 } 122 123 protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) 124 { 125 this.GridView1.EditIndex = e.NewEditIndex; 126 bindgv(); 127 } 128 protected void LinkButton3_Click(object sender, EventArgs e) 129 { 130 this.GridView1.EditIndex = -1; 131 bindgv(); 132 } 133 protected void save_Click(object sender, EventArgs e) 134 { 135 string path1 = this.GridView1.DataKeys[this.GridView1.EditIndex].Value.ToString();//取得文件或路径原名 136 string path2 = ((TextBox)this.GridView1.Rows[this.GridView1.EditIndex].FindControl("TextBox2")).Text;//取得文件或路径修改后的名称 137 if (Directory.Exists(ViewState["rootpath"].ToString() + "/" + path1)) 138 Directory.Move(ViewState["rootpath"].ToString() + "/" + path1, ViewState["rootpath"].ToString() + "/" + path2); 139 else File.Move(ViewState["rootpath"].ToString() + "/" + path1, ViewState["rootpath"].ToString() + "/" + path2); 140 this.GridView1.EditIndex = -1; 141 bindgv(); 142 } 143 protected void LinkButton2_Command(object sender, CommandEventArgs e) 144 { 145 string path = ViewState["rootpath"].ToString() + "/" + e.CommandArgument.ToString(); 146 if (Directory.Exists(path)) ViewState["rootpath"] = path; 147 bindgv(); 148 } 149 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 150 { 151 ViewState["root"] = ViewState["rootpath"] = Server.MapPath("./" + this.DropDownList1.SelectedValue + "/" + ViewState["username"]); 152 bindgv(); 153 } 154 protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 155 { 156 if (ViewState["root"].ToString() != ViewState["rootpath"].ToString()) 157 { 158 string pathstr = ViewState["rootpath"].ToString(); 159 ViewState["rootpath"] = Directory.GetParent(ViewState["rootpath"].ToString());//Path.GetDirectoryName(ViewState["rootpath"].ToString()); 160 bindgv(); 161 } 162 else 163 { 164 msgtext = "目前位置是根目录"; 165 this.msg.Text = msgtext; 166 this.msg.Visible = true; 167 } 168 //Response.Write(" r o ot路径是:" + ViewState["root"].ToString() + "<br /> rootpath路径是" + ViewState["rootpath"].ToString() + "<br />"); 169 } 170 171 //组建文件路径信息,这步有点麻烦.不过细心点就行 172 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 173 { 174 string fname=""; 175 if (e.Row.RowType == DataControlRowType.DataRow) 176 { 177 try 178 { 179 fname = ((LinkButton)e.Row.FindControl("LinkButton2")).CommandArgument.ToString(); 180 } 181 catch (Exception) 182 { 183 fname = ((TextBox)e.Row.FindControl("TextBox2")).Text; 184 } 185 HyperLink hl = ((HyperLink)e.Row.FindControl("HyperLink1")); 186 HyperLink bj = ((HyperLink)e.Row.FindControl("bianji")); 187 LinkButton lb = ((LinkButton)e.Row.FindControl("LinkButton2")); 188 string path = ViewState["rootpath"].ToString() + "/" + fname; 189 if (Directory.Exists(path)) 190 { 191 hl.Text = ""; 192 lb.Text = fname; 193 bj.Text = ""; 194 } 195 else 196 { 197 string url = Request.Url.AbsoluteUri; 198 url = url.Replace("admin.aspx", ""); 199 hl.Target = "_blank"; 200 int wz = path.IndexOf("public"); 201 if (wz == -1) wz = path.IndexOf("private"); 202 path = path.Replace("\\", "/"); 203 string urlpath = path.Substring(wz); 204 hl.NavigateUrl = url + urlpath; 205 bj.NavigateUrl = "edit.aspx?" +urlpath; 206 bj.Target = "_blank"; 207 lb.Text = ""; 208 } 209 } 210 } 211 protected void Button2_Click(object sender, EventArgs e) 212 { 213 StreamWriter sw = File.CreateText(ViewState["rootpath"].ToString() + "\\" + this.filename.Text); 214 sw.Close();//必须先关闭才可编辑 215 bindgv(); 216 this.msgtext = "文件创建成功"; 217 } 218} 219
还没有找到您心仪的内容?请用.net源码大搜捕
代码片断 打包下载该项目完整源码:多用户文件上传管理程序源码
51Aspx.com 版权所有 CopyRight © 2000-2008. 京ICP备06046876号