1

好的,我见过一些人遇到这个问题 - 但我已经在使用文件路径,而不是相对路径。我的代码在我的 PC 上运行良好,但是当另一个开发人员上传图片时,他们会收到此错误。我认为这是文件夹上的安全权限 - 但系统帐户对文件夹具有完全访问权限(尽管我对如何测试应用程序在哪个帐户下运行感到困惑)。通常在本地运行也不会经常给您带来太多安全问题:)

一段代码:

        Guid fileIdentifier = Guid.NewGuid();
        CurrentUserInfo currentUser = CMSContext.CurrentUser;
        string identifier = currentUser.UserName.Replace(" ", "") + "_" + fileIdentifier.ToString();
        string fileName1 = System.IO.Path.GetFileName(fileUpload.PostedFile.FileName);
        string Name = System.IO.Path.GetFileNameWithoutExtension(fileName1);
        string renamedFile = fileName1.Replace(Name, identifier);
        string path = ConfigurationManager.AppSettings["MemberPhotoRepository"];

        String filenameToWriteTo = path + currentUser.UserName.Replace(" ", "") + fileName1;
        fileUpload.PostedFile.SaveAs(filenameToWriteTo);

我的配置设置值在哪里:

这再次在我的电脑上运行良好!(我检查了另一个人在他们的 PC 上是否有该文件夹)。

任何建议将不胜感激 - 谢谢:)

4

3 回答 3

0

显然它所说的是您的 filenameToWriteTo 不是根路径...即它是相对路径,并且您的服务器配置不喜欢那样。使用Server.MapPath获取真实路径...类似于...

string realPhysicalPath = Path.Combine(Server.MapPath(" "), filenameToWriteTo);
fileUpload.PostedFile.SaveAs(realPhysicalPath);

以防万一打印出您的 filenameToWriteTo 以查看其相对路径还是物理路径。如果是相对的,请使用上述方法。

于 2010-05-14T06:03:20.273 回答
0

不知道问题是什么,因为它自己解决了。我们最终没有调试它,因为它是在非开发人员的 PC 上,我有一个解决方法让他继续他的工作,同时我调查潜在的原因。因此,他更新/运行站点或文件权限的方式可能是通过获取我的目录的副本来修复的。

至少我知道它需要物理文件路径,所以希望不会再遇到这个!

于 2010-06-02T01:58:20.233 回答
0

请确保您保存文件的文件夹存在。如果文件夹不存在,则不会为您创建它,并且 SaveAs 方法将抛出您现在遇到的异常。

谢谢你。

于 2012-08-31T13:02:16.123 回答