SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.07.2002, 16:03:05
PiCK-NiKCER PiCK-NiKCER ist offline
Anfänger
 
Registriert seit: Jul 2002
Beiträge: 1
File-Liste erstellen

Hallo Leute:
ich wechsle gerade von asp zu php und bin gerade dabei die Scripte zu convertieren bzw. mir analoge in php zu "beschaffen".

Für folgendes Problem habe ich noch keine Lösung gefunden:

Erstellen einer Dateiliste in einen Browserfenster mit entsprechenden Links, die einen Download erzwingen. Also z.B. erstelle eine Liste der Dateien von Verzeichnis /pdf/ und linke sie so, dass User diese Files nur Downloaden - und nicht im Browser öffnen können.

So ein Script hatte ich schnell in asp gefunden und angepasst.
Hier das Script in PhP (original). In PHP hatte ich nicht so viel Glück ;)

THX in advance für jeden post

PiCK



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%
'8***********************************************8
' Jason Withrow - For ASP101 July 2001
' Page Builds List of Files in Specific Folder
' With Links to Download files
'
' jwithrow@mediaone.net
'8***********************************************8

Dim strThisPage
strThisPage = Request.ServerVariables("SCRIPT_NAME")
strThisPage = Right(strThisPage, Len(strThisPage) - 1)

'Path To Folder That holds Files To Download Here
'Default is the current Folder
FILE_FOLDER = StripFileName(Request.ServerVariables("PATH_TRANSLATED"))

'Constants
Const adVarChar = 200
Const adInteger = 3
Const adDate = 7
Const adFileTime = 64
Const adNumeric = 131

%>
<HTML>
<HEAD>
<TITLE>File Download List For <%= Date() %></TITLE>
<STYLE TYPE="TEXT/CSS">
.TabHeader { Font-Family: Arial; Font-Weight: Bold; Font-Size: 12px; Background: Silver }
.DataCol { Font-Family: Verdana; Font-Size: 12px }
</STYLE>
<SCRIPT>
function msg() {
self.status = 'File Downloads For <%= Date() %>';
return true
}
</SCRIPT>
</HEAD>

<BODY onLoad="msg()">
<TABLE BORDER=1 ID=tblFileData BACKGROUND="">
<TR>
<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Name">File Name</A></TD>
<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Type">File Type</A></TD>
<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Size">File Size</A></TD>
<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Path">File Path</A></TD>
<TD CLASS=TabHeader><A HREF="sSort.asp?sort=Date">Last Modified</A></TD>
</TR>
<%
strSortHeader = Request.QueryString("sort")

IF strSortHeader = "" Then
Call GetAllFiles("")
Else
Call GetAllFiles(strSortHeader)
End IF
%>


</TABLE>
</BODY>
</HTML>
<%
'8*****************************************8
' The next release will have sort routines
' That is why the column headers are links
' They are hooks to add the sorts into.
'8****************************************8


Sub GetAllFiles(strSortBy)
Dim oFS, oFolder, oFile
Set oFS = Server.CreateObject("Scripting.FileSystemObject")

'Set Folder Object To Proper File Directory
Set oFolder = oFS.getFolder(FILE_FOLDER)

Dim intCounter

intCounter = 0

IF strSortBy = "" Then 'UnSorted (default)
Dim FileArray()
ReDim Preserve FileArray(oFolder.Files.Count, 5)

For Each oFile in oFolder.Files
strFileName = oFile.Name
strFileType = oFile.Type
strFileSize = oFile.Size
strFilePath = oFile.Path
strFileDtMod = oFile.DateLastModified

FileArray(intCounter, 0) = strFileName
FileArray(intCounter, 1) = "<A HREF=" & Chr(34) & "startDownload.asp?File=" _
& Server.urlEncode(strFilePath) & "&Name=" & Server.urlEncode(strFileName) & "&Size=" & strFileSize & Chr(34) _
& " onMouseOver=" & Chr(34) & "self.status='" & strFileName & "'; return true;" & Chr(34) _
& " onMouseOut=" & Chr(34) & "self.status=''; return true;" & Chr(34) & ">" & strFileName & "</A>"
FileArray(intCounter, 2) = strFileType
FileArray(intCounter, 3) = strFileSize
FileArray(intCounter, 4) = strFilePath
FileArray(intCounter, 5) = strFileDtMod

intCounter = (intCounter + 1)
Next

intRows = uBound(FileArray, 1)
intCols = uBound(FileArray, 2)

For x = 0 To intRows -1
Echo("<TR>")
For z = 0 To intCols
If z > 0 Then
BuildTableCol(FileArray(x, z))
End IF
Next
Echo("</TR>")
Next

Else
'Sorted List

Set oRS = Server.CreateObject("ADODB.Recordset")
oRS.Fields.Append "Name", adVarChar, 500
oRS.Fields.Append "Type", adVarChar, 500
oRS.Fields.Append "Size", adInteger
oRS.Fields.Append "Path", adVarChar, 500
oRS.Fields.Append "Date", adFileTime
oRS.Open

For Each oFile in oFolder.Files
strFileName = oFile.Name
strFileType = oFile.Type
strFileSize = oFile.Size
strFilePath = oFile.Path
strFileDtMod = oFile.DateLastModified

oRS.AddNew
oRS.Fields("Name").Value = "<A HREF=" & Chr(34) & "startDownload.asp?File=" _
& Server.urlEncode(strFilePath) & "&Name=" & Server.urlEncode(strFileName) & "&Size=" & strFileSize & Chr(34) _
& " onMouseOver=" & Chr(34) & "self.status='" & strFileName & "'; return true;" & Chr(34) _
& " onMouseOut=" & Chr(34) & "self.status=''; return true;" & Chr(34) & ">" & strFileName & "</A>"
oRS.Fields("Type").Value = strFileType
oRS.Fields("Size").Value = strFileSize
oRS.Fields("Path").Value = strFilePath
oRS.Fields("Date").Value = strFileDtMod
Next

oRS.Sort = strSortBy & " ASC"

Do While Not oRS.EOF
Echo("<TR>")
BuildTableCol(oRS("Name"))
BuildTableCol(oRS("Type"))
BuildTableCol(oRS("Size"))
BuildTableCol(oRS("Path"))
BuildTableCol(oRS("Date"))
Echo("</TR>")
oRS.MoveNext
Loop

oRS.Close
Set oRS = Nothing
End IF

EchoB("<B>" & oFolder.Files.Count & " Files Available</B>")

Cleanup oFile
Cleanup oFolder
Cleanup oFS
End Sub

Function Echo(str)
Echo = Response.Write(str & vbCrLf)
End Function

Function EchoB(str)
EchoB = Response.Write(str & "<BR>" & vbCrLf)
End Function

Sub Cleanup(obj)
IF isObject(obj) Then
Set obj = Nothing
End IF
End Sub

Function StripFileName(strFile)
StripFileName = Left(strFile, inStrRev(strFile, ""))
End Function

Sub BuildTableCol(strData)
Echo("<TD CLASS=DataCol>" & strData & "</TD>")
End Sub

'Not implemented
Sub BuildTableRow(arrData)
Dim intCols
intCols = uBound(arrData)
For y = 0 To intCols
Echo("<TD CLASS=DataCol>" & arrData(y) & "</TD>")
Next
End Sub

%>

######################
# UND #
######################

<%
'8***********************************************8
' Jason Withrow - For ASP101 July 2001
' This page forces the save as dialogue to prevent
' files from being opened in the browser.
'
' jwithrow@mediaone.net
'8***********************************************8

Response.Buffer = True
Dim strFilePath, strFileSize, strFileName

Const adTypeBinary = 1

strFilePath = Request.QueryString("File")
strFileSize = Request.QueryString("Size")
strFileName = Request.QueryString("Name")

Response.Clear

'8*******************************8
' Requires MDAC 2.5 to be stable
' I recommend MDAC 2.6 or 2.7
'8*******************************8
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

strFileType = lcase(Right(strFileName, 4))

' Feel Free to Add Your Own Content-Types Here
Select Case strFileType
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg"
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".asp"
ContentType = "text/asp"
Case Else
'Handle All Other Files
ContentType = "application/octet-stream"
End Select


Response.AddHeader "Content-Disposition", "attachment; filename=" & strFileName
Response.AddHeader "Content-Length", strFileSize
' In a Perfect World, Your Client would also have UTF-8 as the default
' In Their Browser
Response.Charset = "UTF-8"
Response.ContentType = ContentType

Response.BinaryWrite objStream.Read
Response.Flush

objStream.Close
Set objStream = Nothing

%>
Mit Zitat antworten
  #2  
Alt 01.08.2002, 19:16:29
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
... ich glaube mich tritt ein pferd...

sorry wenn ich das so deutlich sage.

was hab ich den hier geschrieben LINK
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #3  
Alt 03.08.2002, 00:06:53
markus.thiede markus.thiede ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Köln
Alter: 41
Beiträge: 112
markus.thiede eine Nachricht über ICQ schicken
Auch auf de gefahr das Codig sich wieder aufregt post ich mal nen Teil aus meinem ersten PHP code:

Ich glaub das könnt zumindest im ansatz weiter helfen:
PHP-Code:
function verzeichnis2($verzeichnis,$daten// Funktion Verzeichnis 2 gehört zu FrmDatensatzAendern
  
{
    
anfang("Verzeichnis: "$verzeichnis); // HTML Kopf
    
$ordner opendir($verzeichnis) or die(ende()); // Verzeinis Öffnen
    
$verzeichnis_eintrag = array(); // Array Verzeichnisfeld
    
$datei_eintrag = array(); // Array Dateifeld
    
while($eintrag=readdir($ordner)) // Einträge Auslesen
      
{
         
$test$verzeichnis ."/".$eintrag// Test Variable erstellen Aktuelles Verzeichnis/Eintrag
         
if(is_dir($test)) // Überprüfen ob eintrag ein Verzeichnis ist
           
{
             
array_push($verzeichnis_eintrag,$eintrag); // Wenn JA: eintrag ins Verzeichnisfeld einfügen
           
}
         else
           {
             
array_push($datei_eintrag,$eintrag); // Wenn NEIN: eintrag ins Dateifeld einfügen
           
}
       }
     echo 
"<H3>Verzeichnis wählen</H3>n<HR>n"// Überschrift Ausgeben
     
echo "<FORM method='post'>n"// Formular Beginnen
     
echo "<INPUT type='hidden' name='formular' value='verzeichnis2'>n"// Bei Klick auf OK Formular verzeichnis2 öffnen
     
while(list($key,$wert)=each($daten)) // Feld Daten auslesen
       
{
          
printf("<INPUT type='hidden' name='daten[%s]' value='%s'>n",$key,$wert); // Daten an Formula verzeichnis2 übergeben
       
}                                                            // Damit Daten erhalten bleiben
     
reset($daten); // Arrayzeiger zurück auf den Anfang setzen
     
echo "<SELECT name='verzeichnis' size='1'>n"// Selectbox beginnen
     
while(list($key,$eintrag) = each($verzeichnis_eintrag)) // einräge aus Verzeichnisfeld lesen...
       
{
          
printf("<OPTION value='%s'> %sn",$verzeichnis ."/"$eintrag,$eintrag); // ... als Optionen in die Selectbox eintragen
       
}
     echo 
"</SELECT>n"// Selectbox Ende
     
echo "<INPUT type='submit' value='OK'size='20'><BR>n"// OK Buttom
     
echo "</FORM>n"// Formular ENDE
     
echo "<BR>n"// Zeilenumbruch
     
echo "<H3>Datei Wählen</H3>"// Überschrift
     
echo "<HR>n"// Neue Zeile
     
echo "<FORM method='post'>n"// Formular Beginnen
     
echo "<INPUT type='hidden' name='formular' value='FrmDatensatzAendern'>n"// Bei klick auf OK Formular Benutzer Äandern aufrufen
     
while(list($key,$wert)=each($daten)) // Datensätze an Formular Benutzer Ändern Zurückgeben
       
{
          
printf("<INPUT type='hidden' name='daten[%s]' value='%s'>n",$key,$wert); //Hilfseinträge zum Übergeben von Daten
       
}
     
reset($daten); // Arraypointer wieder auf anfang setzen
     
printf("<INPUT type='hidden' name='verzeichnis' value='%s'>n",str_replace('/usr/local/httpd/htdocs/','',$verzeichnis));//Hilftag zum übergeben des Verzeichnisses (Aktuelles Verzeichnis ab HTDOCS)
     
echo "<SELECT name='datei' size='1'>n"// Selectbox öffnen
     
while(list($key,$eintrag) = each($datei_eintrag)) // einträge aus Dateifeld lesen
       
{
         
printf("<OPTION value='%s'>%sn",$eintrag,$eintrag); // und als optionen an die Selectbox geben
       
}
     echo 
"</SELECT>n"// Selectbox Ende
     
echo "<INPUT type='submit' value='OK'><BR>n"//OK Buttom
     
echo "</FORM>n"// Formular ende
  
}; 
__________________
Ein Programm schreibt man um ein
Problem zu lösen nur leider erhält
man mit jedem Program ein neues
Problem!

Mit Zitat antworten
  #4  
Alt 03.08.2002, 15:20:14
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
Zitat:
Original geschrieben von markus.thiede
...auf de gefahr das Codig sich wieder aufregt...

ist das denn unberechtigt?
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #5  
Alt 03.08.2002, 15:33:51
markus.thiede markus.thiede ist offline
Anfänger
 
Registriert seit: Jun 2002
Ort: Köln
Alter: 41
Beiträge: 112
markus.thiede eine Nachricht über ICQ schicken
Nein nicht unbedingt aber ich war jetzt einfach zu faul das Skript ins internet zu laden.
__________________
Ein Programm schreibt man um ein
Problem zu lösen nur leider erhält
man mit jedem Program ein neues
Problem!

Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:41:29 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt