Avatar billede maximus25 Nybegynder
22. august 2002 - 13:51 Der er 13 kommentarer og
2 løsninger

problemer med filvisning

jeg har lavet et lille script som henter alle filer i en folder. Det virker fint...indtil jeg klader filen fra min db sådan her:
index.asp?page=link/index.asp

det bliver vist ok men de filer der bliver listet er ude fra rod mappen og ikke inde fra link mappen som jeg gene ville have den til. Hvad er der galt?

Her er lidt af den kode som bliver brugt til at vise filerne:

strPathInfo = Request.ServerVariables("URL")
strPhysicalPath = Server.MapPath(strPathInfo)


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPhysicalPath)
Set objFolder = objFile.ParentFolder
Set objFolderContents = objFolder.Files
Avatar billede eagleeye Praktikant
22. august 2002 - 14:42 #1
Muligvis pga denne linje som vist tager parent folderen som så nok er roden..
Set objFolder = objFile.ParentFolder

Hvad hvis du skrive:
ændre linket til: index.asp?page=/link

og ændere denne linie:
Set objFile = objFSO.GetFile(strPhysicalPath)
til:
Set objFolder = objFSO.GetFolder(strPhysicalPath)

og sletter linien:
Set objFolder = objFile.ParentFolder
Avatar billede eagleeye Praktikant
22. august 2002 - 14:43 #2
så koden ser sådan ud:


strPathInfo = Request.ServerVariables("URL")
strPhysicalPath = Server.MapPath(strPathInfo)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(strPhysicalPath)
Set objFolderContents = objFolder.Files
Avatar billede maximus25 Nybegynder
22. august 2002 - 14:53 #3
jeg får denne fejl:


Fejltype:
Serverobjekt, ASP 0228 (0x80004005)
Kaldet til Server.Execute mislykkedes under indlæsningen af siden.
/index.asp, line 28
Avatar billede eagleeye Praktikant
22. august 2002 - 15:13 #4
det kan godt være det ikke skal være / foran i linket:

index.asp?page=link
Avatar billede maximus25 Nybegynder
22. august 2002 - 15:28 #5
desværre er der stadig den samme fejl....
Avatar billede eagleeye Praktikant
22. august 2002 - 17:10 #6
Så lige noget andet..

sPathInfo hendtes i URL
strPathInfo = Request.ServerVariables("URL")

men i linket hedder den page så prøv at rette url til page:
strPathInfo = Request.ServerVariables("page")
Avatar billede eagleeye Praktikant
22. august 2002 - 17:17 #7
Hov det må være varmen det skal være Querystring og ikke ServerVariables

strPathInfo = Request.QueryString("page")
Avatar billede eagleeye Praktikant
22. august 2002 - 17:19 #8
din kode bør faktisk virke hvis du ændre ServerVariables("URL") til Querysting("page"):



strPathInfo = Request.QueryString("page")
strPhysicalPath = Server.MapPath(strPathInfo)


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPhysicalPath)
Set objFolder = objFile.ParentFolder
Set objFolderContents = objFolder.Files
Avatar billede eagleeye Praktikant
22. august 2002 - 17:20 #9
men der skal en / enten i linket ellet i denne linie:

strPhysicalPath = Server.MapPath("/"&strPathInfo)
Avatar billede maximus25 Nybegynder
22. august 2002 - 22:23 #10
det virker ok nu ....hurra fordet.....men det mest underliger er at boxene hvor billerne skulle er tomme men de linker det rigtige sted hen...man skulle tro at refferencer til mappen hvor billederne lå i er forkert men jeg kan se at antallet af tomme bokse svarer helt til antallet af billeder....så vi er kommet lidt videre, men hvad tror du der er galt?
Avatar billede eagleeye Praktikant
22. august 2002 - 22:40 #11
Hvis kun udskriver filnavnet i image source så vil den jo tror billederne ligger i folderen med ASP filen og ikke i link folderen. ´
Så stilen "/"&strPathInfo skal ind i image source

response.write "<img src="/" & strPathInfo & "/" & file.name & ">"

Hvis jeg forstår det du skriver rigtigt.
Avatar billede maximus25 Nybegynder
23. august 2002 - 09:57 #12
jeg har prøvet at indsætte det hvor jeg tror det skal være...men så kommer denne fejl...

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: ''
/link/index.asp, line 97
Avatar billede maximus25 Nybegynder
23. august 2002 - 09:59 #13
jeg ved ikke om du kan bruge hele filen men her er den:
Avatar billede maximus25 Nybegynder
23. august 2002 - 09:59 #14
<head>
<title></title>
</head>

<body bgcolor="#C0C0C0">






<h3 align="center">test</h3>
<hr>


 
<%
'------------------------------------------------
'henter info om siden
'------------------------------------------------
page = trim(Request.QueryString("page"))
start = trim(Request.QueryString("start"))

'------------------------------------------------
'Åbner Filsystem
'------------------------------------------------
strPathInfo = Request.QueryString("page")
strPhysicalPath = Server.MapPath(strPathInfo)


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.GetFile(strPhysicalPath)
Set objFolder = objFile.ParentFolder
Set objFolderContents = objFolder.Files
'------------------------------------------------
'grund variabler
'------------------------------------------------
row_count = 0
row = 1
max_row = 3
count = 1
If NOT start <> "" then
Start = 1
End If
%>

<p align=center>

<%
'------------------------------------------------
'Info variabler
'------------------------------------------------

info_page = 0
info_page_count = 0
info_Count = 0

'------------------------------------------------
'Info Script, udregner og udskriver info til siden
'------------------------------------------------
If page <> "" then
response.write "side <a href='link/index.asp'>1</a> "
else
Response.write " 1 "
End If

For Each objFileItem in objFolderContents
info_Count = info_Count + 1
info_page = info_page + 1
if info_page = 9 then
info_page_count = info_page_count + 1
info_page = 0
End If
If info_page = 0 then
If trim(info_page_count + 1) = trim(page) then
response.write info_page_count + 1 & " "
Else
response.write "<a href='link/index.asp?start=" & info_count & "&page=" & info_page_count + 1 & "'>" & info_page_count + 1 & "<a> "
End If
End If
Next
Response.write "<br>Der er ialt <b>" & (info_Count) & "</b> billeder"
if (info_page_count) * 9 = info_count then
Response.write " på <b>" & (info_page_count) & "</b> sider<br>"
Else
Response.write " på <b>" & (info_page_count) + 1 & "</b> sider<br>"
End If
%>
<div align="center">
<table border="0" cellspacing="3" cellpadding="3">
  <tr>

<%
For Each objFileItem in objFolderContents

If objFileItem.Name = "link/index.asp" then
Else
 
  If CLng(count) < CLng(start) then
  count = count + 1
  Else

  If CLng(row) => CLng(max_row) And row_count = 3 then
  Else
 
 
 
 
  If row_count > 0 then
    response.write "<tr>"
    row_count = 0
    row = row + 1
  End If





 
  Response.write " <td><a href=link/'"
  Response.Write(objFileItem.Name)

  Response.write "'><img border=0 src='" & (objFileItem.Name) & "' alt='" & (objFileItem.Name) & "' width=438 height=60></a>"
  row_count = row_count + 1   
  count = count + 1
End If
End If
End If
Next
%>

    </td>
  </tr>
</table>
Avatar billede maximus25 Nybegynder
27. august 2002 - 10:00 #15
jeg går udfra at du har travlt siden du ikke har haft tid til at svare. Men tak for hjælpen alligevel...det var medvirkende til at jeg selv fandt frem til løsningen..så jeg synes det er fair at vi deler
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