I pointed to a different directory and same problem with .JPG's. It bombs on 
line 91  --- lngConvert2 = clng(asc(right(strTemp, 1)) + ((asc(left(strTemp, 
1)) * 256))) ---

I'm running Chilisoft/Apache/Linux so I'm wondering if it is perhaps related to 
how Linux stores files? Any ideas? Thanks.


Quoting Steve Abaffy <[EMAIL PROTECTED]>:

> I just ran the code against my entire images directory for my website and
> it
> accuratly returned all images sizes including the .jpg. Maybe there is
> something wrong with the jpg file itself.
> 
> -----Original Message-----
> From: Craig [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, August 22, 2002 9:27 AM
> To: ActiveServerPages
> Subject: Image Properties Difficult Question.
> 
> 
> I'm using the script that Tim Fletcher recommended yesterday. The one you
> told me about David (Penton) kept returning weird values for .GIF's and
> would not return anything for .JPG's.
> 
> This script works perfectly for .GIF's (with a little modification I had
> to add) but craps out on .JPG's. Part of the returned page is this:
> 
> ----------------------------------------------------------------------
> watercooler_bubbling2_md_wht.gif 10/10/01 12:48:34 PM 4117 76 x 120 128
> colors
> virtualwatercooler1502.gif 10/10/01 12:48:34 PM 3257 150 x 90 128 colors
> header.jpg 11/02/01 4:19:12 PM 92472 Microsoft VBScript runtime error
> '800a0005'
> 
> Invalid procedure call or argument: 'asc'
> 
> /imgsz.asp, line 91
> -----------------------------------------------------------------------
> 
> It always errors out when it reaches the first .JPG in the folder.
> 
> Here is the code below with line 91 marked.
> 
> <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
> 
> <HTML>
> <HEAD><TITLE></TITLE>
> </HEAD>
> <BODY><%
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::                                                             :::
>   ':::  This routine will attempt to identify any filespec passed  :::
>   ':::  as a graphic file (regardless of the extension). This will :::
>   ':::  work with BMP, GIF, JPG and PNG files.                     :::
>   ':::                                                             :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::          Based on ideas presented by David Crowell          :::
>   ':::                   (credit where due)                        :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   '::: blah blah blah blah blah blah blah blah blah blah blah blah :::
>   '::: blah blah blah blah blah blah blah blah blah blah blah blah :::
>   '::: blah blah     Copyright *c* MM,  Mike Shaffer     blah blah :::
>   '::: blah blah      ALL RIGHTS RESERVED WORLDWIDE      blah blah :::
>   '::: blah blah  Permission is granted to use this code blah blah :::
>   '::: blah blah   in your projects, as long as this     blah blah :::
>   '::: blah blah      copyright notice is included       blah blah :::
>   '::: blah blah blah blah blah blah blah blah blah blah blah blah :::
>   '::: blah blah blah blah blah blah blah blah blah blah blah blah :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
> 
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::                                                             :::
>   ':::  This function gets a specified number of bytes from any    :::
>   ':::  file, starting at the offset (base 1)                      :::
>   ':::                                                             :::
>   ':::  Passed:                                                    :::
>   ':::       flnm        => Filespec of file to read               :::
>   ':::       offset      => Offset at which to start reading       :::
>   ':::       bytes       => How many bytes to read                 :::
>   ':::                                                             :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   function GetBytes(flnm, offset, bytes)
> 
>      Dim objFSO
>      Dim objFTemp
>      Dim objTextStream
>      Dim lngSize
> 
>      on error resume next
> 
>      Set objFSO = CreateObject("Scripting.FileSystemObject")
> 
>      ' First, we get the filesize
>      Set objFTemp = objFSO.GetFile(flnm)
>      lngSize = objFTemp.Size
>      set objFTemp = nothing
> 
>      fsoForReading = 1
>      Set objTextStream = objFSO.OpenTextFile(flnm, fsoForReading)
> 
>      if offset > 0 then
>         strBuff = objTextStream.Read(offset - 1)
>      end if
> 
>      if bytes = -1 then               ' Get All!
> 
>         GetBytes = objTextStream.Read(lngSize)  'ReadAll
> 
>      else
> 
>         GetBytes = objTextStream.Read(bytes)
> 
>      end if
> 
>      objTextStream.Close
>      set objTextStream = nothing
>      set objFSO = nothing
> 
>   end function
> 
> 
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::                                                             :::
>   ':::  Functions to convert two bytes to a numeric value (long)   :::
>   ':::  (both little-endian and big-endian)                        :::
>   ':::                                                             :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   function lngConvert(strTemp)
>      lngConvert = clng(asc(left(strTemp, 1)) + ((asc(right(strTemp, 1)) *
> 256)))
>   end function
> 
>   function lngConvert2(strTemp)
> LINE 91         lngConvert2 = clng(asc(right(strTemp, 1)) +
> ((asc(left(strTemp, 1)) * 256)))
>   end function
> 
> 
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::                                                             :::
>   ':::  This function does most of the real work. It will attempt  :::
>   ':::  to read any file, regardless of the extension, and will    :::
>   ':::  identify if it is a graphical image.                       :::
>   ':::                                                             :::
>   ':::  Passed:                                                    :::
>   ':::       flnm        => Filespec of file to read               :::
>   ':::       width       => width of image                         :::
>   ':::       height      => height of image                        :::
>   ':::       depth       => color depth (in number of colors)      :::
>   ':::       strImageType=> type of image (e.g. GIF, BMP, etc.)    :::
>   ':::                                                             :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   function gfxSpex(flnm, width, height, depth, strImageType)
> 
>      dim strPNG
>      dim strGIF
>      dim strBMP
>      dim strType
>      strType = ""
>      strImageType = "(unknown)"
> 
>      gfxSpex = False
> 
>      strPNG = chr(137) & chr(80) & chr(78)
>      strGIF = "GIF"
>      strBMP = chr(66) & chr(77)
> 
>      strType = GetBytes(flnm, 0, 3)
> 
>      if strType = strGIF then                         ' is GIF
> 
>         strImageType = "GIF"
>         Width = lngConvert(GetBytes(flnm, 7, 2))
>         Height = lngConvert(GetBytes(flnm, 9, 2))
>         Depth = 2 ^ ((asc(GetBytes(flnm, 11, 1)) and 7) + 1)
>         gfxSpex = True
> 
>      else
> 
>         strBuff = GetBytes(flnm, 0, -1)               ' Get all bytes from 
file
>         lngSize = len(strBuff)
>         flgFound = 0
> 
>         strTarget = chr(255) & chr(216) & chr(255)
>         flgFound = instr(strBuff, strTarget)
> 
>         if flgFound = 0 then
>            exit function
>         end if
> 
>         strImageType = "JPG"
>         lngPos = flgFound + 2
>         ExitLoop = false
> 
>         do while ExitLoop = False and lngPos < lngSize
> 
>            do while asc(mid(strBuff, lngPos, 1)) = 255 and lngPos
> < lngSize
>               lngPos = lngPos + 1
>            loop
> 
>            'Response.Write "lngPos = " & lngPos & "<BR><BR>"
>            'Response.Write "strBuff = " & strBuff & "<BR><BR>"
> 
>            if asc(mid(strBuff, lngPos, 1)) < 192 or asc(mid(strBuff,
> lngPos,
> 1)) > 195 then
>            value = (mid(strBuff, lngPos + 1, 2))
>            'Response.Write "value = " & value
>              lngMarkerSize = lngConvert2(mid(strBuff, lngPos + 1, 2))
>              lngPos = lngPos + lngMarkerSize  + 1
>            else
>               ExitLoop = True
>            end if
> 
>        loop
>        '
>        if ExitLoop = False then
> 
>           Width = -1
>           Height = -1
>           Depth = -1
> 
>       else
> 
>           Height = lngConvert2(mid(strBuff, lngPos + 4, 2))
>           Width = lngConvert2(mid(strBuff, lngPos + 6, 2))
>           Depth = 2 ^ (asc(mid(strBuff, lngPos + 8, 1)) * 8)
>           gfxSpex = True
> 
>        end if
> 
>      end if
> 
>   end function
> 
> 
> 
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
>   ':::     Test Harness                                              :::
>   ':::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
> 
>   ' To test, we'll just try to show all files with a .GIF extension in the
> root of C:
> 
>   Set objFSO = CreateObject("Scripting.FileSystemObject")
>   Set objF = objFSO.GetFolder("/usr/local/apache/internaldev/images")
>   Set objFC = objF.Files
> 
>   response.write "<table border=""0"" cellpadding=""5"">"
> 
>   For Each f1 in objFC
>     if instr(ucase(f1.Name), ".GIF") OR instr(ucase(f1.Name), ".JPG") then
>        response.write "<tr><td>" & f1.name & "</td><td>" & f1.DateCreated &
> "</td><td>" & f1.Size &
> "</td><td>"
> 
>        if gfxSpex(f1.Path, w, h, c, strType) = true then
> 
>               'my code added to convert resulting image widths and heights to
> something closely resembling pixel width
>               'As some values (apparently random) are correct in pixels to 
begin
> with, only those values that likely
>               'need converting, those > 2000, are subject to the routine
>               if w > 2000 then
>                       w = w/257
>               end if
> 
>               if h > 2000 then
>                       h = h/257
>               end if
> 
> 
>           response.write w & " x " & h & " " & c & " colors"
>        else
>           response.write "&nbsp;"
>        end if
> 
>        response.write "</td></tr>"
> 
>     end if
> 
>   Next
> 
>   response.write "</table>"
> 
>   set objFC = nothing
>   set objF = nothing
>   set objFSO = nothing
> 
> 
> %>
> </BODY>
> </HTML>
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> 
> Any suggestions please?
> 
> Thanks so much.
> 
> 
> 
> 
> ---
> You are currently subscribed to activeserverpages as:
> [EMAIL PROTECTED]
> To unsubscribe send a blank email to
> %%email.unsub%%
> 
> 
> 
> 
> ---
> You are currently subscribed to activeserverpages as:
> [EMAIL PROTECTED]
> To unsubscribe send a blank email to
> %%email.unsub%%
> 





---
You are currently subscribed to activeserverpages as: [email protected]
To unsubscribe send a blank email to [EMAIL PROTECTED]

Reply via email to