在Godaddy发布.net网站

时间:2011-12-15 17:10:33

标签: file-upload permissions publishing

我正在使用microsoft visual studio来构建和发布我的网站。我能够通过ftp发布给我的主人godaddy。

我的网站在本地工作正常,直到我发布到网上。

我在尝试加载照片时遇到此错误。我是否需要将文件夹设置为读写执行?

'/'应用程序中的服务器错误。

拒绝访问路径'D:\ Hosting \ 8722453 \ html \ Pictures \ 1bd71b0f-bd55-48a7-9368-2e8faadf5830.jpg'。

我认为这个代码块存在问题。

if (FileUpload1.HasFile)
                try
                {
                    var FileExtension = Path.GetExtension(FileUpload1.PostedFile.FileName);
                    //FileUpload1.PostedFile.ContentType == 
                    if (FileUpload1.PostedFile.ContentType.ToLower() == "image/jpg" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/jpeg" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/pjpeg" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/gif" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/x-png" ||
                    FileUpload1.PostedFile.ContentType.ToLower() == "image/png")
                    {
                        var Myguid = Guid.NewGuid().ToString("N");

                        var newName = Guid.NewGuid() + FileExtension;
                        //Map path to folder
                        string realpath = Server.MapPath("Pictures\\") + newName;
                        //Where jays converter will store the new image.
                        string temppath = Server.MapPath("Pictures\\");
                        string newpath = Server.MapPath("Images\\");

                        FileUpload1.SaveAs(realpath);

                        Label1.Text = "File name: " +
                             FileUpload1.PostedFile.FileName + "<br>" +

                             FileUpload1.PostedFile.ContentLength + " kb<br>" +
                             "Content type: " +
                             FileUpload1.PostedFile.ContentType;


                        InsertMembers insert = new InsertMembers();
                        int age = Int32.Parse(txtAge.Text);
                        insert.InsertNewMember(txtEmail.Text, Myguid, txtName.Text, txtCity.Text, txtState.Text, txtDescription.Text, age, gender);


                        //Get Member Id to Insert into Pictures table
                        GetMemberInfo GetID = new GetMemberInfo();
                        int UMemberId = GetID.GetMemberId(Myguid);
                        Displayme.Text = newName.ToString();

                        //Now that i have member Id Lets insert new picture into picture table
                        Picture InsertnewPictures = new Picture();
                        int insertpics = InsertnewPictures.InserNewPicture(UMemberId, newName, 0);

                        PhotoUtils.JpegConvertor mynewvar = new PhotoUtils.JpegConvertor(temppath, newpath, newName, 300, 400, false);
                        //PhotoUtils.JpegConvertor mynewvare = new PhotoUtils.JpegConvertor()
                    }
                    else
                    {
                        Displayme.Text = "You can only upload jpg's png's or bmp images.";
                    }
                }
                catch (Exception ex)
                {
                    //Handle the error
                    throw ex;
                }

1 个答案:

答案 0 :(得分:0)

是虚拟目录中的图片和图片目录?如果不是这是一个问题。接下来要检查的是用户可以读写这些目录。另外需要注意的是,如果在给定的时间段内更改了足够的文件,IIS进程将重新启动网站(或应用程序池,我不确定哪一个,如果它们是同一个)。

这可以在IIS中配置,但我不确定。我会尝试尽可能地限制文件写入次数,并使用内存中的图像,只将最终结果写入磁盘。另一种选择是将图像存储在数据库中。无需在虚拟目录下读/写文件。