Filesize() liefert Fehler auf 1und1

Hallo alle zusammen,

ich hab folgendes Problem. Ich habe auf 1&1 meine neue Webpage gehostet. Diese arbeitet mit PHP5 und MySQL5. Der Zugriff auf die Datenbank funktioniert perfekt! Ich kann auch die in der Datenbank bespeicherten Links zu den Downloads benutzen und die funktionieren auch!
Doch aus Nutzerfreundlichkeit möchte ich jetzt noch die Filegröße zur entsprechenden Datei anzeigen lassen. Dazu verwende ich die Funktion:

filesize($row_Abfr[‚Link‘])

der Abfragebefehl passt wiegesagt und liefert mir den Pfad zur Datei in Textform. Auf meinem lokalen Testserver funktioniert das auch einwandfrei doch auf dem 1und1 webspache erhalte ich folgende Fehlermeldung:

Warning: filesize() [function.filesize]: Stat failed for **PFADANGABE** (errno=2 - No such file or directory) in /homepages/21/d33903****/htdocs/Abfrage.php on line 168

Wie gesagt, die selbe abfrage nutze ich für den Downloadlink und der funzt einwandfrei. Deshalb gehe ich davon aus, dass es nicht am Pfad selbst liegt!
Kann mir vllt jemand sagen, wo da dann der Hund begraben liegt?

Vielen Dank bereits im Voraus!
VG nobody

Hallo,

Mach doch mal nen
echo $row_Abfr[‚Link‘];
und schreib mal was da rauskommt bitte.

Viele Grüße,
Askan

Also wenn ich echo mache kommt genau der Pfad in Textform raus, unter dem die Datei liegt!

Hi!

hmm… Das ist seltsam… Weiß ich auch nicht weiter…
Wenn du denn über den Browser anwählen kannst sollte der eigl. funktionieren, außer die Funktion ist falsch geschrieben…

Wird denn ein Ergebnis angezeigt?
Also der Filesize?

Viele Grüße,
Askan

Nein leider nicht

Hallo,

filesize($row_Abfr[‚Link‘])

ist $row_Abfr[‚Link‘] vielleicht ein datei-handle?

wenn eine datei bei filesize nicht gefunden wird, dann kommt ein false !!

gruß
Klaus

Hallo,

Wenn das der Fall gewesen wäre, hätte ich ja noch gedacht das das einfache „@“ vor der Funktion ausreichen würde…
Probier es doch einfach mal aus…

Ansonsten weiß ich da auch nicht weiter…

Viele Grüße,
Askan

Toll! der Fehler ist weg, aber jetzt zeigts mir bei der Dateigröße 0 an. Hast du da zufällig eine Idee woran das liegen könnte?

Oh Mann, da fixt man ein Problem und dann kommt gleich das nächste, so gehts heute schon den ganzen Tag – langsam bin ich wirklich genervt! :smile:

Hallo nobody

ich hab folgendes Problem. Ich habe auf 1&1 meine neue Webpage
gehostet. Diese arbeitet mit PHP5 und MySQL5. Der Zugriff auf
die Datenbank funktioniert perfekt! Ich kann auch die in der
Datenbank bespeicherten Links zu den Downloads benutzen und
die funktionieren auch!

OK, ich hatte auch mal einen 1&1 Webspace. Ich glaube,
bis Jahresende kann ich noch darauf zugreifen …

Doch aus Nutzerfreundlichkeit möchte ich jetzt noch die
Filegröße zur entsprechenden Datei anzeigen lassen. Dazu
verwende ich die Funktion:
filesize($row_Abfr[‚Link‘])

der Abfragebefehl passt wiegesagt und liefert mir den Pfad zur
Datei in Textform. Auf meinem lokalen Testserver funktioniert
das auch einwandfrei doch auf dem 1und1 webspache erhalte ich
folgende Fehlermeldung:
Warning: filesize() [function.filesize]: Stat failed for
**PFADANGABE** (errno=2 - No such file or directory) in
/homepages/21/d33903****/htdocs/Abfrage.php on line 168

Das bedeutet, daß er einen ‚stat(…)‘-Aufruf im
Betriebssystem (wahrscheinlich Debian- o.ä. Linux)
nicht machen kann. Es gibt eine Datei dieses Namens
schlichtweg nicht.

Warum kann sie dann über den Brauser beim Webserver
abgerufen werden? Das liegt an einem Konfiguraions-
detail von 1&1:

 ...
<u>1&amp;1 Webhosting</u>, Verbesserung bei negativem Point mit mod\_speling
 Viele Provider, darunter auch 1&1 Webhosting, haben das 
**Apache Modul mod\_speling** standardmäßig aktiviert. Will 
 heißen, ruft jemand eine Datei namens pfad123.php auf (oder 
 Grafik etc.), es existiert allerdings nur eine Datei mit dem 
 Namen pfad124.php, wird diese Datei aufgerufen. Im Grunde ja 
 sinnvoll, wer das nicht möchte, fügt bitte folgende Zeite in 
 die .htaccess hinzu.

<u>CheckSpelling Off</u>
 ...

Wie gesagt, die selbe abfrage nutze ich für den Downloadlink
und der funzt einwandfrei. Deshalb gehe ich davon aus, dass es
nicht am Pfad selbst liegt!

Wahrscheinlich doch. Folgendes geht bei mir:

[/irgendeinverzeichnis/index.php]







<?php $sourcefile = $_SERVER['PATH_TRANSLATED'];<br /> $info = stat($sourcefile);
 $size = filesize($sourcefile);
 
 echo "$sourcefile : "
 . $info['size']
 . " $size
";
?\>

Warning: filesize() [function.filesize]: Stat failed for
**PFADANGABE** (errno=2 - No such file or directory) in
/homepages/21/d33903****/htdocs/Abfrage.php on line 168

Wie gesagt, die selbe abfrage nutze ich für den Downloadlink
und der funzt einwandfrei. Deshalb gehe ich davon aus, dass es

nur mal ne frage ?

ein download link geht ab server root los.
ein betriebsystem link geht aber vom betriebsystem root aus.

Ergo hab ich bei mir 2 spalten, eine URL (von aussen) eine PFAD local.
Weil sich das bei mir durchaus unterscheidet.
Es kann also das system garnicht mit der URL die Datei finden, das kann nur der Apache selber :smile:

ich tippe also darauf

stats(’/homepages/21/d33903****/htdocs/’.$deinurlPFADvonderdatei)

Hallo,
das ist die Abfrage aus der MySQL Datenbank und liefert den Textausdruck:

Dateien/usw/Datei.pdf

VG Nobody

du hast dein problem nicht gefixt. @ unterdrueckt die fehlerausgabe.
der server hat recht: den pfad, den du auslesen moechtest gibt es nicht. er weiss das besser als du.

vermutlich musst du mit http://php.net/getcwd pruefen, wo du dich im filesystem befindest und von dort deinen relativen oder mittels statischen prefix einen absoluten pfad ausrechnen.

Hallo,

Danke, für den Tipp, aber leider hat es nichts bewirkt. Es zeigt immer noch den selben Fehler an.

Ich kann zwar den Fehler mit @filesize unterdrücken aber das löst das Problem nicht! Da zeigt es dann einfach 0 MB an!

VG nobody

Hallo,

Danke für den Tipp, aber leider hat das den Fehler nicht behoben, ich bekomme immer noch die selbe Fehlermeldung.

Zur Info, in der Datenbank habe ich für den Link einen Textausdruck der Form /Data/usw/Datei.pdf gespeichert!

Vg Nobody

Hallo,

Danke, für den Tipp, aber leider hat es nichts bewirkt. Es
zeigt immer noch den selben Fehler an.

Hmmm, welchen „Tipp“ meinst Du denn? Ich habe keinen
abgegeben - sondern ein Testprogramm vorgeschlagen,
um den Fehler einzugrenzen.

Ich kann zwar den Fehler mit @filesize unterdrücken aber das
löst das Problem nicht! Da zeigt es dann einfach 0 MB an!

So ein Quark. Wenn stat() nicht geht, dann geht filesize()
nicht und dann gibt es die Datei nicht. Auch wenn Du
1000 mal irgendwas „unterdrückst“ oder nicht, die Datei
wird davon nicht hergezaubert.

Schreib doch mal gnz konkret:

  • wie sieht der Link *genau* aus, der geht
  • wie sieht der Pfad *genau* aus, der nicht geht

Grüße

CMБ

so … so …
vielleicht hast Du ja auch nur einfach ein „/“ am Anfang zuviel

Hallo,

Danke für den Tipp, aber leider hat das den Fehler nicht
behoben, ich bekomme immer noch die selbe Fehlermeldung.

Zur Info, in der Datenbank habe ich für den Link einen
Textausdruck der Form /Data/usw/Datei.pdf gespeichert

und ?

es geht hier um pfade und nicht um links

links liegen meist auf einem anderen rechner und können deshalb schon keine auskunft geben.

LINK = http://domain/pfad
PFAD = WIN : C:\ordner\datei.txt
PFAD = UNIX : /ordner/datei.txt

was auch immer in deiner Datenbank steht, das ergebnis ist wichtig.

was steht also bei dem befehl stats(‚pfadzurdatei‘) drinne.

Im zweifelsfall macht man es erstmal manuel.

stats(‚pfaeingeben‘)

gugen was passiert, geht das schon nicht , interressiert nun wirklich nicht was in der datenbank ist.