TMD,加班中,下被子绝对不当程序员,文件上传权限问题 出错的代码: FileUpload.PostedFile.SaveAs(phyiscalPath) 其中phyiscalpath的内容是:"D:\Document\WorkDocs\PortalVBVS\uploads\TrainPlan"项目位于:D:\Document\WorkDocs\PortalVBVS下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关注!说的是没有写入权限。可能从IIS与NTFS权限入手。 我已经将aspnet 假如了administrators组了。而且所有相关的文件夹都设置了,连everyone都有完全控制权限了。还是错误依旧。。 一般都是将文件夹uploads共享属性--安全--添加用户asp 设置访问权限就可以 ju_feng(NorthSky):我就是这样做的,没用 你试试,该项目的dll文件的权限!!!! TrainPlan文件夹设置为everyone可完全控制 若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“{machinename}\ASPNET”用户。突出显示此 ASP.NET 帐户,在“允许”列中选中“写”框。这样不行? 这是我采取的办法,结果都不行:1、将aspnet加入administrators 组2、在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“{machinename}\ASPNET”用户,在“允许”列中选中“写”框3、在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“everyone”用户,在“允许”列中选中“写”框我的文件夹没有任何的“拒绝”权限和用户! TrainPlan文件夹属性安全里加everyone可完全控制 我也没遇到个这类的问题,,因为我都是在fat格式下面做,所以没大注意NTFS下面的情形;不知道可否用模拟的方法来解决??就是让某段代码(这里是上传时)以超级用户的身份运行,远行后再回复默认的ASP.NET身份..这样对你的系统安全性我想是最好的. “{machinename}\ASPNET”用户,好象不支持组授权,要直接授权,微软承认这是他的BUG,把ASPNET加上去试试 可能你用的是FrontPage服务器扩展在IIS映射的站点的相应目录下加上写入权限(这个权限由IIS管理)通常情况下只有脚本权限否则,改成文件共享的方式使用调试 1、确认你在IIS里对该站点/目录设置了可写的权限。2、你的站点不要放到NTFS分区中。 using System;using System.IO;using System.Web.UI.HtmlControls;namespace SunYatSite.Common{ public class fileUp { protected HtmlInputFile hifUpFile1=null; protected HtmlInputFile hifUpFile2=null; protected HtmlInputFile hifUpFile3=null; protected HtmlInputFile hifUpFile4=null; protected HtmlInputFile hifUpFile5=null; protected string strPath; public fileUp() { } public fileUp(HtmlInputFile h1,string strPath) { this.hifUpFile1=h1; this.strPath=strPath; } public fileUp(HtmlInputFile h1,HtmlInputFile h2,string strPath) { this.hifUpFile1=h1; this.hifUpFile2=h2; this.strPath=strPath; } public fileUp(HtmlInputFile h1,HtmlInputFile h2,HtmlInputFile h3,string strPath) { this.hifUpFile1=h1; this.hifUpFile2=h2; this.hifUpFile3=h3; this.strPath=strPath; } public fileUp(HtmlInputFile h1,HtmlInputFile h2,HtmlInputFile h3,HtmlInputFile h4,string strPath) { this.hifUpFile1=h1; this.hifUpFile2=h2; this.hifUpFile3=h3; this.hifUpFile4=h4; this.strPath=strPath; } public fileUp(HtmlInputFile h1,HtmlInputFile h2,HtmlInputFile h3,HtmlInputFile h4,HtmlInputFile h5,string strPath) { this.hifUpFile1=h1; this.hifUpFile2=h2; this.hifUpFile3=h3; this.hifUpFile4=h4; this.hifUpFile5=h5; this.strPath=strPath; } public string file_up() { //取得轉換後的名稱,比如2002+12+01+13+40+50+01 string strFileName1=""; if(hifUpFile1!=null) strFileName1=getFileName(hifUpFile1.PostedFile.FileName,"01"); string strFileName2=""; if(hifUpFile2!=null) strFileName2=getFileName(hifUpFile2.PostedFile.FileName,"02"); string strFileName3=""; if(hifUpFile3!=null) strFileName3=getFileName(hifUpFile3.PostedFile.FileName,"03"); string strFileName4=""; if(hifUpFile4!=null) strFileName4=getFileName(hifUpFile4.PostedFile.FileName,"04"); string strFileName5=""; if(hifUpFile5!=null) strFileName5=getFileName(hifUpFile5.PostedFile.FileName,"05"); string strFileName=""; string filepath=""; try { if (strFileName1.Trim()!=""&&hifUpFile1.PostedFile != null) { filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName1)); hifUpFile1.PostedFile.SaveAs(filepath); strFileName+=strFileName1+";"; } if (strFileName2.Trim()!=""&&hifUpFile2.PostedFile != null) { filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName2)); hifUpFile2.PostedFile.SaveAs(filepath); strFileName+=strFileName2+";"; } if (strFileName3.Trim()!=""&&hifUpFile3.PostedFile != null) { filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName3)); hifUpFile3.PostedFile.SaveAs(filepath); strFileName+=strFileName3+";"; } if (strFileName4.Trim()!=""&&hifUpFile4.PostedFile != null) { filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName4)); hifUpFile4.PostedFile.SaveAs(filepath); strFileName+=strFileName4+";"; } if (strFileName5.Trim()!=""&&hifUpFile5.PostedFile != null) { filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName5)); hifUpFile5.PostedFile.SaveAs(filepath); strFileName+=strFileName5+";"; } } catch { } if(strFileName.Trim()!="") strFileName=strFileName.Substring(0,strFileName.Length-1); return strFileName; } public string file_up(string FileName) { //取得轉換後的名稱,比如2002+12+01+13+40+50+亂數+01 string strFileName1=getFileName(FileName,"01"); string strFileName=""; string filepath=""; try { if (strFileName1.Trim()!="") { filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName1)); hifUpFile1.PostedFile.SaveAs(filepath); strFileName+=strFileName1+";"; } } catch { } if(strFileName.Trim()!="") strFileName=strFileName.Substring(0,strFileName.Length-1); return strFileName; } //************************************** //*取得原始文件名 //*輸入:文件的原始路徑 //*輸出:原始文件名 //************************************** public string getFileName1(string strFilePath) { string strFileName=""; //文件名 string strTemp=""; int intPost=strFilePath.LastIndexOf("\\"); if(intPost>0) { strTemp=strFilePath.Substring(intPost+1); if(strTemp.LastIndexOf(".")>0) strFileName=strTemp; } return strFileName; } //************************************** //*取得轉換後的文件名 //*輸入:文件的原始路徑,id //*輸出:系統轉換後的文件名,比如年+月+日+時+分+秒+id(2002+12+01+13+40+50+01).副檔名 //************************************** public string getFileName(string strFilePath,string id) { int intIndex; string strFileName=""; if(strFilePath!=""&&strFilePath!=null) { Random myRandom=new Random(); strFileName=DateTime.Now.ToString("yyyyMMddHHmmss")+myRandom.Next(100,999)+id; intIndex=strFilePath.LastIndexOf("."); if(intIndex>0) strFileName+=strFilePath.Substring(intIndex); } return strFileName; } //************************************** //*取得轉換後的文件路徑 //*輸入:轉化後的文件名,方式 //*輸出:換後的文件路徑 //************************************** public string getFilePath(string strFileName,string strWay) { string strPath=""; if(strWay=="1"&&strFileName!="") strPath="../songs/"+strFileName; if(strWay=="2"&&strFileName!="") strPath="../images/m6/"+strFileName; return strPath; } }} 在ntfs格式下不光要设定设定共享权限还要设定安全性中的权限你把aspnet账户都加进去试试还有,没有必要把aspnet账户加到administrators组中如果,需要,那MS早就做成这个样子了不好哦~~ 我能想到的、大家告诉我的,都试了,tmd,奇迹就是不出现,晕了,被它强奸了我一个晚上的睡眠时间,悲惨啊。。 想问一下,你保存的文件是否有形如XX.XX这种形式如果不是文件的话,会出现这样的错误,我刚才也出了这样的错错处就是我只是写了什么文件的名,没有后缀 在你保存的文件夹的权限中加入asp.net 一点小建议:把写入文件的部分做成一个dll文件。 要在资源管理器中选中程序所在目录,点右键,选属性->安全,加入{machinename}\ASPNET,我的机器名是KKK,此处就填KKK\ASP,为此用户加上写入、修改权限就行了!就是这个原因了,上面的错误提示已经说得很清楚了! 似乎只有一点大家没提到了:不光是\TrainPlan需要有访问权限,\TrainPlan上层的所有目录都需要有aspnet用户有"遍历文件夹/运行文件"这个权限,不知楼主设置了没 搞定了。TMd,是我忘了把文件名加上,只有路径,Tmd,microsoft真会误倒人啊,也怪我一时粗心,谢谢大家的热情帮助,昨天晚上干了一个通宵,先回去了,明天揭贴 求asp.net读取word内容代码 ASP.NET中角色访问权限问题 怎样防止外部程序不断调用页面来刷新活动数据?? 帮忙呀 请问怎么用DataGrid实现每条记录前带+ ASP.NET关于异步访问的问题!怎么解决啊! dnn skin? 关于Ajax技术方面的一点小问题,刚学,卡了两三天了 ajax聊天室中怎么样判断用户离开?在线等,急!!! App植入直播功能后台这边应该怎么做啊,求大神指导 关于page.Request.Form 求助。关于Rpeater控件。
属性--安全--添加用户asp 设置访问权限
就可以
这样不行?
我的文件夹没有任何的“拒绝”权限和用户!
using System.IO;
using System.Web.UI.HtmlControls;
namespace SunYatSite.Common
{
public class fileUp
{
protected HtmlInputFile hifUpFile1=null;
protected HtmlInputFile hifUpFile2=null;
protected HtmlInputFile hifUpFile3=null;
protected HtmlInputFile hifUpFile4=null;
protected HtmlInputFile hifUpFile5=null;
protected string strPath; public fileUp()
{
} public fileUp(HtmlInputFile h1,string strPath)
{
this.hifUpFile1=h1;
this.strPath=strPath;
}
public fileUp(HtmlInputFile h1,HtmlInputFile h2,string strPath)
{
this.hifUpFile1=h1;
this.hifUpFile2=h2;
this.strPath=strPath;
}
public fileUp(HtmlInputFile h1,HtmlInputFile h2,HtmlInputFile h3,string strPath)
{
this.hifUpFile1=h1;
this.hifUpFile2=h2;
this.hifUpFile3=h3;
this.strPath=strPath;
}
public fileUp(HtmlInputFile h1,HtmlInputFile h2,HtmlInputFile h3,HtmlInputFile h4,string strPath)
{
this.hifUpFile1=h1;
this.hifUpFile2=h2;
this.hifUpFile3=h3;
this.hifUpFile4=h4;
this.strPath=strPath;
} public fileUp(HtmlInputFile h1,HtmlInputFile h2,HtmlInputFile h3,HtmlInputFile h4,HtmlInputFile h5,string strPath)
{
this.hifUpFile1=h1;
this.hifUpFile2=h2;
this.hifUpFile3=h3;
this.hifUpFile4=h4;
this.hifUpFile5=h5;
this.strPath=strPath;
} public string file_up()
{
//取得轉換後的名稱,比如2002+12+01+13+40+50+01
string strFileName1="";
if(hifUpFile1!=null)
strFileName1=getFileName(hifUpFile1.PostedFile.FileName,"01");
string strFileName2="";
if(hifUpFile2!=null)
strFileName2=getFileName(hifUpFile2.PostedFile.FileName,"02");
string strFileName3="";
if(hifUpFile3!=null)
strFileName3=getFileName(hifUpFile3.PostedFile.FileName,"03");
string strFileName4="";
if(hifUpFile4!=null)
strFileName4=getFileName(hifUpFile4.PostedFile.FileName,"04");
string strFileName5="";
if(hifUpFile5!=null)
strFileName5=getFileName(hifUpFile5.PostedFile.FileName,"05");
string strFileName="";
string filepath="";
try
{
if (strFileName1.Trim()!=""&&hifUpFile1.PostedFile != null)
{
filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName1));
hifUpFile1.PostedFile.SaveAs(filepath);
strFileName+=strFileName1+";";
}
if (strFileName2.Trim()!=""&&hifUpFile2.PostedFile != null)
{
filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName2));
hifUpFile2.PostedFile.SaveAs(filepath);
strFileName+=strFileName2+";";
}
if (strFileName3.Trim()!=""&&hifUpFile3.PostedFile != null)
{
filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName3));
hifUpFile3.PostedFile.SaveAs(filepath);
strFileName+=strFileName3+";";
}
if (strFileName4.Trim()!=""&&hifUpFile4.PostedFile != null)
{
filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName4));
hifUpFile4.PostedFile.SaveAs(filepath);
strFileName+=strFileName4+";";
}
if (strFileName5.Trim()!=""&&hifUpFile5.PostedFile != null)
{
filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName5));
hifUpFile5.PostedFile.SaveAs(filepath);
strFileName+=strFileName5+";";
}
}
catch
{ }
if(strFileName.Trim()!="")
strFileName=strFileName.Substring(0,strFileName.Length-1);
return strFileName;
}
public string file_up(string FileName)
{
//取得轉換後的名稱,比如2002+12+01+13+40+50+亂數+01
string strFileName1=getFileName(FileName,"01");
string strFileName="";
string filepath="";
try
{
if (strFileName1.Trim()!="")
{
filepath = Path.Combine(Path.GetFullPath(strPath), Path.GetFileName(strFileName1));
hifUpFile1.PostedFile.SaveAs(filepath);
strFileName+=strFileName1+";";
}
}
catch
{ }
if(strFileName.Trim()!="")
strFileName=strFileName.Substring(0,strFileName.Length-1);
return strFileName;
}
//**************************************
//*取得原始文件名
//*輸入:文件的原始路徑
//*輸出:原始文件名
//**************************************
public string getFileName1(string strFilePath)
{
string strFileName=""; //文件名
string strTemp="";
int intPost=strFilePath.LastIndexOf("\\");
if(intPost>0)
{
strTemp=strFilePath.Substring(intPost+1);
if(strTemp.LastIndexOf(".")>0)
strFileName=strTemp;
}
return strFileName;
} //**************************************
//*取得轉換後的文件名
//*輸入:文件的原始路徑,id
//*輸出:系統轉換後的文件名,比如年+月+日+時+分+秒+id(2002+12+01+13+40+50+01).副檔名
//**************************************
public string getFileName(string strFilePath,string id)
{
int intIndex;
string strFileName="";
if(strFilePath!=""&&strFilePath!=null)
{
Random myRandom=new Random();
strFileName=DateTime.Now.ToString("yyyyMMddHHmmss")+myRandom.Next(100,999)+id;
intIndex=strFilePath.LastIndexOf(".");
if(intIndex>0)
strFileName+=strFilePath.Substring(intIndex);
}
return strFileName;
} //**************************************
//*取得轉換後的文件路徑
//*輸入:轉化後的文件名,方式
//*輸出:換後的文件路徑
//**************************************
public string getFilePath(string strFileName,string strWay)
{
string strPath="";
if(strWay=="1"&&strFileName!="")
strPath="../songs/"+strFileName;
if(strWay=="2"&&strFileName!="")
strPath="../images/m6/"+strFileName;
return strPath;
}
}
}
不光要设定设定共享权限
还要设定安全性中的权限
你把aspnet账户都加进去试试还有,没有必要把aspnet账户加到administrators组中
如果,需要,那MS早就做成这个样子了
不好哦~~
如果不是文件的话,会出现这样的错误,我刚才也出了这样的错
错处就是我只是写了什么文件的名,没有后缀