我正在使用microsoft visual studio来构建和发布我的网站。我能够通过ftp发布给我的主人godaddy。
我的网站在本地工作正常,直到我发布到网上。
我在尝试加载照片时遇到此错误。我是否需要将文件夹设置为读写执行?
2>'/'应用程序中的服务器错误。拒绝访问路径'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;
}
答案 0 :(得分:0)
是虚拟目录中的图片和图片目录?如果不是这是一个问题。接下来要检查的是用户可以读写这些目录。另外需要注意的是,如果在给定的时间段内更改了足够的文件,IIS进程将重新启动网站(或应用程序池,我不确定哪一个,如果它们是同一个)。
这可以在IIS中配置,但我不确定。我会尝试尽可能地限制文件写入次数,并使用内存中的图像,只将最终结果写入磁盘。另一种选择是将图像存储在数据库中。无需在虚拟目录下读/写文件。