2008-09-22 2 views
0

는 설명해 드리죠 : 는이 폴더 경로 :>www.my_site.com/images웹 서버의 일부 폴더에 특정 이미지를 나열하는 방법은 무엇입니까?

그리고 이미지가 user_id에 의해 생성되며, 예를 들어, user_id = 27의 이미지는, 27_1.jpg, 27_2.jpg, 27_3.jpg! 27_%.jpg으로 시작하는 이미지를 나열하고 인쇄하는 방법은 무엇입니까? 나는 당신이 나를 이해했기를 바랍니다! PS. 나는 ASP.NET (VB)에서 완전히 beginmer이고 나에게 자세한 정보를 제공하시기 바랍니다는

가 여기 내 루프

while dbread.Read() 

'and then id user_id 
dbread('user_id') 

NEXT 시작 ???

act.WriteLine를 ("") act.WriteLine ("http://www.my_site.com/images/"& dbread ("USER_ID") & "_1 : 지금은 다음과 같이 생성까지


나는, XML을 생성하는 nedd. jpg ") act.WriteLine (" ")

이 노드를 만들 필요가 있기 때문에이 사용자의 이미지가 몇 개 존재해야 하나?

데이터베이스에이 이미지 목록이 없으므로 폴더에 넣어야합니다. (이 사이트는 exacly가 아니지만이 사이트에서 XMl을 만들어야합니다.)

저를 이해합니까?

답변

1

가장 좋은 방법은 디렉토리의 모든 파일을 반복하는 것입니다.

While dbRead.Read 
    dim sUserId as String= dbread('user_id') 
    For Each sFile As String In IO.Directory.GetFiles("C:\") 
    if sFile.StartsWith (sUserId) Then 
     'Do something. 
    End If 
    Next 
Loop 

그러나, 실제로 이미지를 표시하려면 가장 좋은 방법은 이러한 이미지의 데이터 테이블을 만든 다음이를 표시하기 위해하여 DataList 또는 리피터 컨트롤을 사용하여이 될 수있어.

Dim dtImages as new DataTable 
dtImages.Columns.Add("Filename") 
If dbRead.Read 
    dim sUserId as String= dbread('user_id') 
    For Each sFile As String In IO.Directory.GetFiles("C:\") 
    if sFile.StartsWith (sUserId) Then 
     Dim drImage as DataRow = dtImages.NewRow 
     drImage("Filename") = sFile 
     dtImages.Rows.add(drImage) 
    End If 
    Next 
End If 
dlImages.DataSource = dtImages 
dlImages.DataBind 

그런 다음 ASPX 페이지에서 dlImages라는 DataList에 제어 할 수 있습니다 것 같이 정의 :

<asp:datalist id="dlImages" RepeatDirection="Horizontal" runat="server" RepeatLayout="Flow" Height="100%"> 
     <ItemTemplate> 
      <asp:Image ID="Image1" Runat=server ImageUrl='<%# Server.MapPath("photos") & Container.DataItem("FileName") %>'> 
      </asp:Image> 
     </ItemTemplate> 
    </asp:datalist> 
+0

이 솔루션은 나열된 비즈니스 사례를 처리하지 않으며 모든 파일을 가져옵니다. –

+0

왜 모든 파일을 가져 옵니까? "if sFile.StartsWith (sUserId)"행은이를 처리해야합니다. –

1

적절한 방법은 다음

  1. 이 목록을 가져 오기 할 것 ("YourPath", UserId + "_ *. jpg")
  2. 이 목록을 반복하고 XML을 작성한 다음 해당 파일을 ou로 렌더링하십시오. t를 사용자에게 알려줍니다.

기본적으로 GetFiles 메서드는 경로와 와일드 카드 검색을 허용하는 "filter"매개 변수를 허용합니다.

편집 : GetFiles에 작업이 전체 파일 이름을 나타내는 문자열 목록을 반환 , 당신은 다음 실제 파일 이름을 얻기 위해 System.IO.Path.GetFileName() 메소드를 사용하여 이러한 값을 조작 할 수 있습니다.

실제로 문서를 작성하려면 XmlDocument 클래스를 사용하거나 간단한 루프와 문자열 작성 도구를 사용하여 문서를 작성할 수 있습니다. 다음과 같은 것.

StringBuilder oBuilder = new StringBuilder(); 
oBuilder.Append("<root>"); 
string[] ofiles = Directory.GetFiles("YourPath", "yourMask"); 
foreach(string currentString in oFiles) 
{ 
    oBuilder.AppendLine("<file>http://yourpath/" + Path.GetFileName(currentString) + "</file>"); 
} 
oBuilder.Append("</root"); 
관련 문제