저는 웹 사이트를위한 C# 이미지 갤러리를 만들고 있습니다. (저는 많은 자유로운 것들이 있지만 거기에는 많은 경험이 있습니다.) 웹 사이트의 디렉토리에서 배열로 파일을 저장합니다.C# 이미지 갤러리 - 이미지 버튼이 보이지 않습니다.
protected void Page_Load(object sender, EventArgs e)
{
string[] files = null;
files = Directory.GetFiles(Server.MapPath(@"Pictures"),"*.jpg");
는 그때 (내가 엄지 손가락 손톱으로 사용합니다) Imagebuttons의 배열을 만드는 오전 및 동적으로 웹 양식에 패널로를 추가 해요. 그러나 이미지 단추가 양식에 올바르게 추가되었지만 그림에 작은 사각형/원/삼각형 기호가 표시되어 실제 이미지를로드하지 못합니다.
ImageButton [] arrIbs = new ImageButton [파일. 길이 - 1];
for (int i = 0; i < files.Length-1; i++)
{
arrIbs[i] = new ImageButton();
arrIbs[i].ID = "imgbtn" + Convert.ToString(i);
arrIbs[i].ImageUrl = Convert.ToString(files[i]);
Response.Write(Convert.ToString(files[i]) + "**--**");
arrIbs[i].Width = 160;
arrIbs[i].Height = 100;
arrIbs[i].BorderStyle = BorderStyle.Inset;
//arrIbs[i].BorderStyle = 2;
arrIbs[i].AlternateText = System.IO.Path.GetFileName(Convert.ToString(files[i]));
arrIbs[i].PostBackUrl = "default.aspx?Img=" + Convert.ToString(files[i]);
pnlThumbs.Controls.Add(arrIbs[i]);
}
}
이되거나 문제와 관련되지 않을 수있다 (관련되지 않은 경우, 서브 문제이다). Server.MapPath()를 @ "~/Gallery/Pictures"(디렉토리가 사이트 루트와 관련이있는 위치)로 설정하면 오류가 발생합니다. "C :/.../.../.../... 찾을 수 없습니다."웹 사이트는 그림이있는 "그림"으로 디렉토리를 설정 한 경우에만 빌드됩니다. "Pictures"는 위 코드가있는 "Default.aspx"와 같은 폴더에 있습니다. 나는 ~ (tilda) 문자로 운이별로 없다. 이것은 파일 구조 문제입니까, 아니면 IIS 문제입니까?
감사 :
당신이 당신의 ImageButtons을 만들 때 지금이 당신의 이미지 URL이어야한다 :
예, 같은 GetImage.aspx라는 페이지가 앞으로는 이것을 확실히 사용할 수있을 것입니다. 그러나 내가 가진 문제는 Visual Studio 2008에서 웹 사이트를 설정했을 때 IIS 구성 (HTTP)이 아닌 파일 구조 (FILE)를 기반으로했습니다. 따라서 "/Images/Pic1.jpg"경로는 내 웹 루트 -> 이미지 -> Pic1.jpg가 아닌 C : 드라이브를 나타냅니다. – contactmatt
@Veli, 위의 정확한 코드를 사용하여 끝내게되었습니다. 나는 당신이 실제 .aspx 페이지로 img 소스를 설정할 수 있다는 것을 몰랐다. 나는 늘 사진 확장이되어야한다고 생각했다. 고마워, 고마워! – contactmatt
도와 줘서 기쁩니다 :) 그러나 나는 이것을 놓치고 싶습니다. HttpHandler를 사용하는 것이 더 우아한 방법 일지는 모른다 : http://dotnetperls.com/ashx-handler –