php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-11-2004, 12:44
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard Apache Server und andere Verzeichnisse

Hallo!

Ich habe da mal eine Frage: Ich habe den Apache Webserver laufen (das Paket xampp für Windows) und das führt mich nun zu meiner Frage:

Ich habe im Serververzeichnis den Ordner htdocs, in dem sich meine Webseiten befinden. Nun möchte ich aber auf eine Datei zugreifen und sie downloadbar machen, welche sich in einem Verzeichnis befindet, welches mit dem Server nichts zu tun hat.

Ein Beispiel: Meine Seite lauft sagen wir mal auf c:/server/htdocs/index.html. In der Index.html befindet sich der Link zu meinem Worddokument auf d:/daten/haushalt.doc. Wie kann ich also dem apache klarmachen, dass er auch auf diese Seite zugreifen soll? Wäre für Anregungen sehr dankbar.

Leider kann ich diese Datei nicht im Serververzeichnis kopieren, da diese Datei im anderen Verzeichnis aktuell gehalten wird (über Lan). Brauche daher diese Datei nur für Unterwegs zum Nachsehen. Kann man das irgendwie bewerkstelligen?

mfg,
ayin
Mit Zitat antworten
  #2 (permalink)  
Alt 16-11-2004, 13:07
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

du schreibst eine Datei z.B. namens download.php. In diesem Datei liest du das doc-Dokument aus (fopen, fread, fclose), sende dann die Datei mit dem richtigen HTTP-Header (mit header()) zum Browser. Den Link zum Download kannst du etwa so bauen:
<a href="download.php?para=bla..." ...>bla...</a>
wobei para ein Parameter ist, der dir sagt, welche Datei du von wo herholst und zum Download senden mußt.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-11-2004, 13:22
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke für die Antwort. Könntest du das bitte etwas vereinfachen, bin nicht so ein Profi.
Mit Zitat antworten
  #4 (permalink)  
Alt 16-11-2004, 13:27
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

lies mal den Thread: Bild aus mySQL DB ausgeben -Problem-
Das Bild in diesem Fall ist zwar in der Datenbank, aber das Prinzip ist dasselbe. Die Funktionen zum auslesen habe ich dir vorhin schon gepostet, hier nochmals als Link:
fopen
fread
fclose
Mit Zitat antworten
  #5 (permalink)  
Alt 16-11-2004, 13:52
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ok, das mit dem Filetransfer funktioniert nun, blos ist das was ich erhalte kein Worddokument mehr, sonder eine reine Textdatei, bei der nichts mehr zu gebrauchen ist.

Hier der verwendete Code:

PHP-Code:
<?php 
function send_file($name) { 
  
$status FALSE
  
$path "c:/server/".$name
  if (!
is_file($path) or connection_status()!=0) return(FALSE); 
  
header("Content-type: application/octet-stream"); 
  
header("Content-Disposition: inline; filename=\"".$name."\""); 
  
header("Content-length: ".(string)(filesize($path))); 
  
header("Expires: ".gmdate("D, d M Y H:i:s"mktime(date("H")+2date("i"),
        
date("s"), date("m"), date("d"), date("Y")))." GMT"); 
  
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); 
  
header("Cache-Control: no-cache, must-revalidate"); 
  
header("Pragma: no-cache"); 
  if (
$file fopen($path'rb')) { 
   while(!
feof($file) and (connection_status()==0)) { 
     print(
fread($file1024*8)); 
     
flush(); 
   } 
   
$status = (connection_status()==0); 
   
fclose($file); 
  } 
  return(
$status); 

?>

<?php 
if (!send_file("verwaltung/Dienstauftrag.doc")) { 
die (
"file transfer failed"); 
// either the file transfer was incomplete 
// or the file was not found 
} else { 
// the download was a success 
// log, or do whatever else 

?>
Was ist daran falsch?

Geändert von asp2php (16-11-2004 um 14:12 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 16-11-2004, 13:57
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

mach aus
Zitat:
header("Pragma: no-cache");
if ($file = fopen($path, 'rb')) { while(!feof($file) and (connection_status()==0)) { print(fread($file, 1024*8));
flush();
}
$status = (connection_status()==0);
fclose($file);
}
return($status);
mal
PHP-Code:
return readfile($path); 
und wenn es ein worddokument ist, wäre application/msword eventuell besser als application/octet-stream
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 16-11-2004, 14:10
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Da kommt leider noch immer nur irgendwas raus und nicht das gewünschte Worddokument.
Mit Zitat antworten
  #8 (permalink)  
Alt 16-11-2004, 14:12
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wie sieht's denn momentan aus? Bitte die Codezeilen so umbrechen, dass man mit einer Auflösung 1024 x 768 beim Lesen nicht nach rechts scrollen muß. Danke.
Mit Zitat antworten
  #9 (permalink)  
Alt 16-11-2004, 14:17
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Also da ist noch immer nichts brauchbares. Der ladet zwar das File herunter, ist aber absolut unbrauchbar.

Meinst du mit den Codezeilen mich? Ich hab das nur ganz normal gepostet, mir fällt da nicht auf, dass bei 1024*768 das falsch angezeigt wird.
Mit Zitat antworten
  #10 (permalink)  
Alt 16-11-2004, 14:22
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Jetzt hat es funktioniert. Der Fehler war hier:
Zitat:
if ($file = fopen($path, 'rb'))
Da musste das ' durch ein " ersetzt werden. Dachte nicht, das dies so einen grossen Unterschied macht.
Mit Zitat antworten
  #11 (permalink)  
Alt 16-11-2004, 14:28
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

HAbe soeben festgestellt, dass der Download nur mit Opera einwandfrei funktioniert, aber nicht mit Mozilla FireFox noch mit Internet Explorer.
Mit Zitat antworten
  #12 (permalink)  
Alt 16-11-2004, 15:09
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So, nächstes Problem. Leider überträgt er die Datei im ASCII-Modus und nicht im Binären Modus. Wie kann ich das umstellen, weil die Datei wird ja binär geöffnet.
Mit Zitat antworten
  #13 (permalink)  
Alt 16-11-2004, 15:19
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mach mal so:
PHP-Code:
...
header("Content-type: application/msword\n"); 
header("Content-Disposition: filename=\"".$name."\"\n"); 
header("Content-length: ".filesize($path)."\n"); 
if (
$file fopen($path'rb')) {
    
$data fread($filefilesize($path));
    
fclose($file);
    echo 
$data;
}
... 
funz bei mir mit allen Browsers
Mit Zitat antworten
  #14 (permalink)  
Alt 16-11-2004, 15:33
ayin
 Registrierter Benutzer
Links : Onlinestatus : ayin ist offline
Registriert seit: Dec 2001
Beiträge: 68
ayin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wird leider noch immer ASCII übertragen.
Mit Zitat antworten
  #15 (permalink)  
Alt 16-11-2004, 15:36
asp2php
 Banned
Links : Onlinestatus : asp2php ist offline
Registriert seit: Feb 2004
Beiträge: 11.745
asp2php ist zur Zeit noch ein unbeschriebenes Blatt
Standard

code zeigen
Mit Zitat antworten
Antwort

Lesezeichen


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

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 02:46 Uhr.