Avatar billede 1005 Nybegynder
04. juli 2003 - 09:06 Der er 11 kommentarer og
2 løsninger

billeder i asp

jeg fandt følgende udmærkede asp script til at genere og fremvise billeder: er der her tale om brug af aspimage eller...hvad sker der her - jeg kan få det til at fungere men kan ikke gennemskue hvad og hvor........
kommentare udbedes fordele og ulemper:
<%
Dim CurFile, ShowSub, ShowPic, PictureNo
Dim strPathInfo, strPhysicalPath

CurFile = "ShowPicture.asp"
%>

<html><head>
<title>ASP Picture </title>
<script language="JavaScript">
<!--
function jumppage(sel)
{
  var i = sel.selectedIndex
  self.location.href = sel.options[i].value
}
// -->
</script>
</head><body>

<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="800" id="AutoNumber1">
<tr>
      <td align="center" width="75%"> <img src="artnowlogo.jpg" width="340" height="57"></td>
<td align="center" width="25%">
  <form action=<%=CurFile%> method="POST">
          v&aelig;lg billedserie
          <select name="go" onChange="jumppage(this);" size=1>
            <%
  ShowSub = request("ShowSub")
  ShowPic = request("ShowPic")
  strPathInfo = Request.ServerVariables("PATH_INFO")
  strPhysicalPath = Server.MapPath(strPathInfo)

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set objFile = objFSO.GetFile(strPhysicalPath)
  Set objFolder = objFile.ParentFolder
  Set objFolderContents = objFolder.Files
  For each Folder in objFolder.SubFolders
      If Left(Folder.Name,1)<>"_" Then
          Response.write "<option "
          If ShowSub=Folder.Name Then
              Response.Write "selected "
          End if
          Response.Write"value='" & CurFile & "?ShowSub="
          Response.Write(Replace(Folder.Name, " ", "%20"))
          response.write "'>"
          Response.Write(Folder.Name & "</option>")
          If ShowSub <= " " Then
            ShowSub = Folder.Name
        End if
      End if
  Next
  Set objFSO = Nothing
  %>
          </select>
        </form>
  </td>
</tr>
</table>
<hr>

<%
If ShowPic > " " then
  ShowPic = Replace(ShowPic, " ", "%20")
  Response.Write "<a href='java script:history.go(-1)'><img src='" & ShowPic & "'><BR><BR><B>Go Back</B></a>"
Else
%>
  <table border="0" cellpadding="0" cellspacing="5" style="border-collapse: collapse" bordercolor="#111111" width="800" id="AutoNumber1">
  <tr>
  <%
  strPhysicalPath = Server.MapPath(".\" & ShowSub)
  If ShowSub > " " then
    ShowSub = Replace(ShowSub, " ", "%20")
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(strPhysicalPath)
    Set objFolderContents = objFolder.Files
    For Each objFileItem in objFolderContents
    If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" THEN
        ShowPic = Replace(objFileItem.Name, " ", "%20")
      'Response.write "<td align='center' width='25%'><a href=" & ShowSub & "\"
      Response.write "<td align='center' width='25%'><a href=" & CurFile & "?ShowPic=" & ShowSub  & "\" & ShowPic
      'Response.Write(Replace(objFileItem.Name, " ", "%20"))
      Response.write ">"
      Response.Write("<img src='" & ShowSub & "\" & objFileItem.Name & "' width=200> ")
      Response.Write("<p align='center'><b>" & Mid(objFileItem.Name,1,Len(objFileItem.Name)-4) & "</b>")
      Response.write "</a></td>"
      PictureNo = PictureNo + 1
      If PictureNo=4 Then
          Response.write "</tr><tr>"
          PictureNo = 0
      End if
    End if
    Next
    Set objFSO = Nothing
  End if
  %>
  </tr>
  </table>
<%
End if
%>
</center>
</html>
Avatar billede hossein Nybegynder
04. juli 2003 - 09:41 #1
den bruger FSO (Scripting.FileSystemObject). den læser filer som ligger på en bestemt sti. det er meget velegnet til at vise billeder.
Avatar billede 1005 Nybegynder
04. juli 2003 - 09:48 #2
forskellen på denne og aspimage - er det læsning fra sti og læsning fra database?
Avatar billede hossein Nybegynder
04. juli 2003 - 10:42 #3
Fordelen ved FSO er at du behøver ikke at installere et component på serveren. Tilgengæld Aspimage giver dig andre muligheder som Resize osv du kan læse mere om her:
http://www.serverobjects.com/comp/Aspimage.htm
Avatar billede 1005 Nybegynder
04. juli 2003 - 11:12 #4
takker for gode svar - hvis du er til point så svar vh 1005
Avatar billede c Nybegynder
04. juli 2003 - 11:41 #5
Hmm.... vil bare lige fortælle følgende:
Du kan se hvad den bruger i linien: Set objFSO = CreateObject("Scripting.FileSystemObject")

Det som scriptet gør er at gennemlede mappen for filer som ender på GIF eller JPG, men ikke JPEG
(kan ændres med:
If Ucase(Right(objFileItem.Name,4))=".GIF" OR Ucase(Right(objFileItem.Name,4))=".JPG" OR Ucase(Right(objFileItem.Name,4))=".JPEG" THEN )

Desuden så kan serverens administrator have fjernet muligheden for at benytte FSO, så det er ikke altid sikkert at det virker på enhver server.

Jeg vil sige at til dette formål er det en meget god måde da FSO er indbygget i IIS og ASP, og du ikke belaster serveren ved at loade en eksternkomponent.

Ulempen er at du ikke kan gøre billedet mindere (MB mæssigt) og dermed formindske overførsetiden...

mvh
Christian
Avatar billede 1005 Nybegynder
04. juli 2003 - 12:01 #6
jeg kan ikke lave thumbnails - eller billederne i mine mapper kan kun strækkes ?
Avatar billede hossein Nybegynder
04. juli 2003 - 12:41 #7
Jo, man kan også lave thumbnails. Hvis du kan vente til aften, så finder jeg på noget.
Avatar billede 1005 Nybegynder
04. juli 2003 - 12:50 #8
jeg venter gerne - vh 1005
Avatar billede hossein Nybegynder
04. juli 2003 - 21:44 #9
prøv den:

<%
    Dim FSO
    Dim Files
    Dim File
    Dim Count
    Const Columns = 3
    Const ImageWidth = 100
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
    Set Files = FSO.GetFolder(Server.MapPath("./")).Files
    Set FSO = Nothing
    Response.Write "<TABLE width=""100%"" border=""1"" cellspacing=""0"">"
    Response.Write "<TR>"
    Count = 0
    For Each File In Files
        Select Case LCase(Right(File.Name, 3))
            Case "jpg", "gif", "bmp", "png"
                Count = Count + 1
                if Count Mod Columns = 1 Then Response.Write "</TR><TR>"
               
                Response.Write "<TD align=""center"" valign=""top"">"
               
                Response.Write "<A href=""" & File.Name & """>"
                Response.Write File.Name
                Response.Write "<BR><IMG src=""" & File.Name & """ border=""1"" width=""" & ImageWidth & """><BR>"
                Response.Write "</A>"
               
                Response.Write "</TD>"
        End Select
    Next
    Response.Write "</TR>"
    Response.Write "</TABLE>"
    Set File = Nothing
    Set Files = Nothing
    %>
Avatar billede 1005 Nybegynder
04. juli 2003 - 22:22 #10
hvor er det stien til min mappe skal skrives ind?? mappen ligger ved siden af filen og hedder jk??
Avatar billede 1005 Nybegynder
04. juli 2003 - 22:27 #11
nu lagde jeg aspfilen ind i mappen jk - så viser den alle billederne jeg vil gerne have aspfilen udenfor se sp ovenfor ??
Avatar billede hossein Nybegynder
04. juli 2003 - 23:40 #12
denne linie din sti:
Set Files = FSO.GetFolder(Server.MapPath("./")).Files
så kan du lave en folder og lægge alle dine billeder i. Hvis du navngiver folderen images så:
Set Files = FSO.GetFolder("../images/").Files
Avatar billede hossein Nybegynder
04. juli 2003 - 23:41 #13
denne linie din sti = denne linie bestemmer din sti
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Politiets Efterretningstjeneste

IT-løsningsarkitekt i PET

Forsvarets Efterretningstjeneste

Network engineer - Datacenter & Automation

Capgemini Danmark A/S

Open Application (Denmark)

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger it-supporter til Lokal IT Servicecenter i Karup