protected void ImageButton1_Click(object sender,ImageClickEventArgs e)
{
HttpPostedFile Hpf = this.FileUpload1.PostedFile;
if (Hpf.ContentLength <= 0)
{
this.Info.Text = "请选择上传文件!";
return;
}
string Ext = ".rar|.zip";
Regex rg = new Regex(Ext);
if (!rg.IsMatch(Hpf.FileName))
{
this.Info.Text = "不允许上传的文件,请选择rar/zip压缩文件!";
return;
}
string folder = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(DateTime.Now.ToString() + Hpf.FileName,"md5").ToLower().Substring(8,16);
string path = Server.MapPath("/") + "Item/" + folder;
string FilePath = path + Path.GetExtension(Hpf.FileName);
Hpf.SaveAs(FilePath);
RegistryKey reg = Registry.ClassesRoot.OpenSubKey(@"Applications\WinRAR.exe\Shell\Open\Command");
string rarPath = reg.GetValue("").ToString();//获取注册表rar安装路径
rarPath = rarPath.Substring(0,rarPath.LastIndexOf(' '));
reg.Close();
System.Diagnostics.Process P = new Process();
P.StartInfo.FileName = rarPath;
Directory.CreateDirectory(path); //创建解压文件夹
P.StartInfo.Arguments = "x " + FilePath + " " + path;
P.Start();//解压开始
P.WaitForExit();
File.Delete(FilePath);//删除rar文件
Response.Write("<script type='text/javascript'>window.returnValue='/Item/" + folder + "';window.close()</" + "script>");
}
此段代码加入将要解压文件房子c盘,解压到c盘可以,但是如果放到F盘的某个文件夹下不可以,F盘根目录下可以,之前项目连接了vss,断开后仍然不行,之前在另一项目中同样代码实现了此功能,不知何原因,速求答案,感谢之至!
和vss 没有关系,这是典型的权限不够造成的,你F盘某个文件夹没有给 aspnet 帐号开放足够的权限。
如果不知道调哪些权限,可以加上everyone权限试试,如果可以了说明是权限的问题,再适中加其它IIS等权限。