Avatar billede kivig Nybegynder
03. november 2004 - 13:23 Der er 5 kommentarer og
1 løsning

liste mappeindhold fra server ?

Hej.

Jeg har en fungerende ASPSMARTUPLOAD komponent, som uploader filer til serveren via asp.

Mit spørgsmål er nu, om man på nogen måde kan liste mappefiler fra serveren via asp og slette filer på serveren via asp ?
Bedste hilsener

Lars
Avatar billede mortency Nybegynder
03. november 2004 - 13:34 #1
Det lar seg enkelt gjøre vis FSO.

Se http://www.w3schools.com/asp/asp_ref_filesystem.asp
Avatar billede kivig Nybegynder
03. november 2004 - 15:09 #2
Tak for dit link.. men koderne viser ikke en liste af filer fra en server mappe.. Den viser kun en fil ad gangen. :o/ Jeg venter lige med at give dig de 100 points, hvis nogle skulle komme med flere forslag :) Hvis ikke der er et bedre forslag får du points´ne senere.

Men mange tak for linket.. Jeg kendte ikke den side.. den virker rigtig god..
Avatar billede phuc69 Juniormester
03. november 2004 - 15:38 #3
Det kan være du kan bruge dette

<%
path = ( Server.MapPath ("/billeder") ) 

Set fso = CreateObject("Scripting.FileSystemObject")
Set theCurrentFolder = fso.GetFolder( path )
Set curFiles = theCurrentFolder.files

i=0


For Each fileItem in curFiles

fname = fileItem.Name
fsize = fileItem.Size
response.write fname
response.write fsize
Next
Avatar billede mortency Nybegynder
03. november 2004 - 16:19 #4
//Kivig

<%
Sub BuildUploadRequest(RequestBin)
    'Get the boundary
    PosBeg = 1
    PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
    boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
    boundaryPos = InstrB(1,RequestBin,boundary)
    'Get all data inside the boundaries
    Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
        'Members variable of objects are put in a dictionary object
        Dim UploadControl
        Set UploadControl = CreateObject("Scripting.Dictionary")
        'Get an object name
        Pos = InstrB(BoundaryPos,RequestBin,getByteString("Content-Disposition"))
        Pos = InstrB(Pos,RequestBin,getByteString("name="))
        PosBeg = Pos+6
        PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
        Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filename="))
        PosBound = InstrB(PosEnd,RequestBin,boundary)
        'Test if object is of file type
        If  PosFile<>0 AND (PosFile<PosBound) Then
            'Get Filename, content-type and content of file
            PosBeg = PosFile + 10
            PosEnd =  InstrB(PosBeg,RequestBin,getByteString(chr(34)))
            FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            'Add filename to dictionary object
            UploadControl.Add "FileName", FileName
            Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
            PosBeg = Pos+14
            PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
            'Add content-type to dictionary object
            ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
            UploadControl.Add "ContentType",ContentType
            'Get content of object
            PosBeg = PosEnd+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
            Else
            'Get content of object
            Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
            PosBeg = Pos+4
            PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
            Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
        End If
        'Add content to dictionary object
    UploadControl.Add "Value" , Value   
        'Add dictionary object to main dictionary
    UploadRequest.Add name, UploadControl   
        'Loop to next object
        BoundaryPos=InstrB(BoundaryPos+LenB(boundary),RequestBin,boundary)
    Loop

End Sub

'String to byte string conversion
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
    char = Mid(StringStr,i,1)
    getByteString = getByteString & chrB(AscB(char))
Next
End Function

'Byte string to string conversion
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
    getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function

assetFolder = "downloads\"

strHTML = ""

set objFSO = server.CreateObject ("Scripting.FileSystemObject")
set objMainFolder = objFSO.GetFolder(server.MapPath(assetFolder))
       
catid = CStr(request("catid"))

strMappeNavn= catid
cutindex = InStrRev(strMappeNavn,"\")
if cutindex > 0 then
  strMappeNavn= Right(strMappeNavn, Len(strMappeNavn)-cutIndex)
end if

if catid="" then catid = objMainFolder.path

set objTempFSO = server.CreateObject ("Scripting.FileSystemObject")
set objTempFolder = objTempFSO.GetFolder (catid)
set objTempFiles = objTempFolder.files

strHTML = strHTML & "<table border=0 cellpadding=3 cellspacing=0 width=240>"
for each objTempFile in objTempFiles

    '***********
    set basePath = objFSO.GetFolder(server.MapPath(assetFolder))
    PhysicalPathWithoutBase = Replace(objTempFile.path,basePath.path,"")   
    sTmp = replace(PhysicalPathWithoutBase,"\","/")
    sCurrImgPath = assetFolder & sTmp
    '***********

    strFileSize = objTempFile.size
                       
    strSuffix = "bytes"
    If strFileSize > 1024 Then
    strFileSize = strFileSize / 1024
    strSuffix = "kB"
    End If

    If strFileSize > 1024 Then
    strFileSize = strFileSize / 1024
    strSuffix = "MB"
    End If

    strNewFileSize = FormatNumber(strFileSize,1,,,True) & " " & strSuffix   

    strHTML = strHTML & "<tr bgcolor=Lavender>"
    strHTML = strHTML & "<td valign=top><p title=" &objTempFile.name & ">" & Left(objTempFile.name,30) & "</p></td>"
    'strHTML = strHTML & "<td valign=top>" & Left(objTempFile.type,10) & "</td>"
    strHTML = strHTML & "<td valign=top>" & strNewFileSize & "</td>"
    strHTML = strHTML & "<td valign=top style=""cursor:hand;"" onclick=""deleteFile('" & strMappeNavn & "/" & objTempFile.name & "')""><u><font color=blue>slett</font></u></td></tr>"


next
strHTML = strHTML & "</table>"

Function createCategoryOptions(pi_objFolder)
   
    set objFolders = pi_objfolder.SubFolders
    for each objFolder in objFolders
        createCategoryOptions objFolder
    next
   
    if pi_objFolder.attributes and 2 then
   
    else   

'***********
set basePath = objFSO.GetFolder(server.MapPath(assetFolder))
Response.Write Replace(pi_objFolder.path,basePath.path,"")   
'***********
   
        if CStr(catid)=CStr(pi_objFolder.path) then
            strOptions = strOptions & "<option value=""" & pi_objFolder.path & """ selected>" & Replace(pi_objFolder.path,basePath.path,"")    & "</option>" & vbCrLf
        else
            strOptions = strOptions & "<option value=""" & pi_objFolder.path & """>" & Replace(pi_objFolder.path,basePath.path,"")      & "</option>" & vbCrLf
        end if
    end if
   
    strOptions = strOptions & vbCrLf
    createCategoryOptions = strOptions
End Function

if Request.QueryString("action")="del" then
    file = request.QueryString("file")
    Set objFSO1 = Server.CreateObject("Scripting.FileSystemObject")
    Set MyFile = objFSO1.GetFile(server.MapPath(".") & "\" & assetFolder & "\" & file)
    MyFile.Delete
    Response.Redirect Request.ServerVariables("SCRIPT_NAME") & "?catid="& server.MapPath(".") & "\" & assetFolder & strMappeNavn
end if

if Request.QueryString("action")="upload" then
    Response.Expires = 0
    Response.Buffer = TRUE
    Response.Clear

    Set UploadRequest = CreateObject("Scripting.Dictionary")

    ByteCount = Request.TotalBytes
    RequestBin = Request.BinaryRead(byteCount)
    BuildUploadRequest RequestBin

    on error resume next
    ContentType =UploadRequest.Item("inpFile").Item("ContentType")
    FILEFLAG = err.number
    on error goto 0

    if FILEFLAG = 0 then
            ContentType = UploadRequest.Item("inpFile").Item("ContentType")
            FilePathName = UploadRequest.Item("inpFile").Item("FileName")
            FileName = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
            Value = UploadRequest.Item("inpFile").Item("Value")
    else
            FileName = ""
    end if

    if FileName<>"" then
            Set objFSO2 = Server.CreateObject("Scripting.FileSystemObject")
            Set MyFile = objFSO2.CreateTextFile(server.MapPath(".") & "\" & assetFolder & "\" & Request.QueryString("Mappe") & "\" & FileName)
            MyFile.Write getString(value)
            MyFile.Close
    end if

    set UploadRequest = nothing
   
    Response.Redirect (Request.ServerVariables("SCRIPT_NAME"))
End If
%>
<html>
<head>
    <title>Filer for nedlastning</title>
   
    <style>

    BODY
        {
        FONT-FAMILY: Verdana;FONT-SIZE: xx-small;
        }
    TABLE
        {
        FONT-SIZE: xx-small;
        FONT-FAMILY: Tahoma
        }
    INPUT
        {
        font:8pt verdana,arial,sans-serif;
        }
    select
        {
        height: 22px;
        top:2;
        font:8pt verdana,arial,sans-serif
        }   
    .bar
        {
        BORDER-TOP: #99ccff 1px solid; BACKGROUND: #336699; WIDTH: 100%; BORDER-BOTTOM: #000000 1px solid; HEIGHT: 20px
        }       
    </style>
       
    <script language="JavaScript">
    function deleteFile(sURL)
        {
        if (confirm("Slette denne filen ?") == true)
            {
            window.navigate("<%=Request.ServerVariables("SCRIPT_NAME")%>?action=del&file="+sURL);
            }
        }
    function selectFile(sURL)
        {
        //reset
        panel_Flash.style.display = "none"
        panel_Link.style.display = "none"
       
        inpSRC.value = sURL
       
        //get media type
        var arrTmp = inpSRC.value.split(".");
        var FileExtension = arrTmp[arrTmp.length-1]
        var MediaType = ""
        if(FileExtension=="wmv"||FileExtension=="WMV"||FileExtension=="avi"||FileExtension=="AVI") MediaType = "Video"
        if(FileExtension=="wma"||FileExtension=="WMA"||FileExtension=="wav"||FileExtension=="WAV"||FileExtension=="mid"||FileExtension=="MID") MediaType = "Sound"
        if(FileExtension=="gif"||FileExtension=="GIF"||FileExtension=="jpg"||FileExtension=="JPG"||FileExtension=="jpeg"||FileExtension=="JPEG") MediaType = "Image"
        if(FileExtension=="swf"||FileExtension=="SWF") MediaType = "Flash"
               
        switch(MediaType)
            {
            case "Flash":
                inpMediaType.value = "Flash"
                panel_Flash.style.display = "block"
                break;
            case "Video":
                inpMediaType.value = "Video"
                break;
            case "Image":
                inpMediaType.value = "Image"
                break;   
            case "Sound":
                inpMediaType.value = "Sound"
                break;
            default:
                inpMediaType.value = "File"
                panel_Link.style.display = "block"
                break;
            }
        }
    function applyLink()
        {
        oName=window.opener.oUtil.oName
        if(inpInsType.value=="Hyperlink")
            {//Insert as hyperlink
            eval("window.opener."+oName).InsertAsset_Hyperlink(inpSRC.value,inpLinkText.value)
            }
        else
            {//Auto
            switch(inpMediaType.value)
                {
                case "Flash":
                    eval("window.opener."+oName).InsertAsset_Flash(inpSRC.value,inpFlashWidth.value,inpFlashHeight.value)
                    break;
                case "Video":
                    eval("window.opener."+oName).InsertAsset_Video(inpSRC.value)   
                    break;
                case "Image":
                    eval("window.opener."+oName).InsertAsset_Image(inpSRC.value)   
                    break;   
                case "Sound":
                    eval("window.opener."+oName).InsertAsset_Sound(inpSRC.value)
                    break;
                default:
                    eval("window.opener."+oName).InsertAsset_Hyperlink(inpSRC.value,inpLinkText.value)
                    break;
                }
            }
        }
    </script>
<LINK rel="stylesheet" type="text/css" href="css/style.css">
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">   
</head>
<body link=Blue vlink=MediumSlateBlue alink=MediumSlateBlue leftmargin=5 rightmargin=5 topmargin=5 bottommargin=5 bgcolor=Gainsboro>
        <table border=0 cellpadding=3 cellspacing=3 ID="Table2">
        <tr>
          <td valign=top>
                <table border=0 cellpadding=0 cellspacing=0 width=260 ID="Table4">
                <tr><td>
                <div class="bar" style="padding-left: 5px;">
                <font size="2" face="tahoma" color="white"><b>Fil Navn</b></font>
                </div>
                </td></tr>
                </table>
                <div style="overflow:auto;height:120;width:260;BORDER-LEFT: #316AC5 1px solid;BORDER-RIGHT: LightSteelblue 1px solid;BORDER-BOTTOM: LightSteelblue 1px solid;">
                <%=strHTML%>
                </div>
                <FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="<%=Request.ServerVariables("SCRIPT_NAME")%>?action=upload&Mappe=<%=strMappeNavn%>" ID="form1" name="form1">
                    Last opp fil : <br>
                    <INPUT type="file" id="inpFile" name=inpFile size=22 class="form_txtfield"><br>
                                    <input name="inpcatid" ID="inpcatid" type=hidden>
                <INPUT TYPE="button" value="Last opp" onclick="form1.submit()" class="form_knapper2" id=button4 name=button4>
                </FORM>       
                                <table cellpadding=0 cellspacing=0 align=center><tr>
                <td><INPUT type="button" value="Avbryt" onclick="self.close();" ID="Button1" NAME="Button1" class="form_knapper2">&nbsp;</td>
                </tr></table>
        </td>                       
        </tr>
        </table>
</body>
</html>
Avatar billede mortency Nybegynder
03. november 2004 - 16:20 #5
Du kan også endre fysisk sti fra c:// osv til Server.MapPath("/")
Avatar billede kivig Nybegynder
04. november 2004 - 15:35 #6
//mortency

WOOW.. Det er lige præcis set jeg har brug for.. og det virker (næsten)..

last opp funktionen virker ikke.. og jeg får en fejl-meddelelse på følgende.

"for each objFolder in objFolders" linie 131..

Jeg roder lidt med koden.. Men det er helt fantastisk.. TAK.. :)

Kivig
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