php Frage: or die bei upload
fatmike182 31.03.2008 - 14:08 808 8
fatmike182
Agnotologe
|
Hallo, habe einen FTP auf den man via FTP (evtl irgendwann auch über ein uploadscript, wenns der gratisanbieter zulässt) Daten uppen kann. Auf der php-Seite hat man dann eine Tabelle in der der Namen, Dateigröße und Typ aufgelistet werden. Wird allerdings eine Datei soeben upgeloaded, bekommt man einen Error für die Zeile in der die Dateigröße ermittelt wird: $fs2 = round((filesize($f2))/1024);
Warning: filesize() [function.filesize]: stat failed for superpr0n.pdf in /users/url/www/index.php on line 1337 wohin würde das "or die" hinkommen um bei "Dategröße" ein "upload in progress" zu schreiben? kann ich in der oben erwähnten $fs2 vor den Beistrich ein "or die echo.." anhängen? Ciao, Michi edit: ich frage deshalb, da $fs2 eine Zahl erwarten würde und nicht so einfach auf String switchen wird. Gäbs da also was eleganteres als eine isset o.ä. Abfrage vor dem Echo? (Frage 2: isset überhaupt passend?)
Bearbeitet von fatmike182 am 31.03.2008, 14:14
|
Snoop
Here to stay
|
versuch mal ein @round()... ps: netter dateiname mag gar nicht wissen was du da hostest
|
fatmike182
Agnotologe
|
naja, unterdrücken der Fehlermeldung is auch ein Weg, aber ich würd gern Signalisieren, dass das geuppt wird (im Optimalfall auch eine Zeit angeben, aber damit müsst ich den Buffer auslesen oder wwi was ... zumindest hab ich sowas in der Art mit javaservlets mal gemacht)
PS: das sind pr0n tutorials in braille zum ausdrucken für den Nadeldrucker
|
Snoop
Here to stay
|
@datei: jajajajaja naja das wird ein bissi schwer bis unmöglich. da müsstest auf systemdatein zugreifen, die bei einem gratis anbieter mit 100% sicherheit gesperrt sind (sonst wär er ziemlich dämlich). was du ja machen könntest wäre, dass du eine liste anlegst, wo die dateinamen gespeichert werden. wenn ein neuer name auftaucht, sperrst du mal die seite für z.B. 5 Minuten. wenn die datei in diesen 5 minuten die größe verändert hat -> bleibts noch immer für 5 minuten gesperrt. und immer so weiter bis halt die größe gleich bleibt, dann gibst es wieder frei und haust es in die liste dazu. das kannst entweder über eine mysql oder halt filebased machen. Ist halt ein "workaround"
|
AoD
aka AngelOfDeath
|
Warum kann man es nicht einfach so machen, dass Dateien die hochgeladen werden grundsätzlich inaktiv sind und dann über die Webanwendung freigeschaltet werden müssen?
|
Snoop
Here to stay
|
naja, das problem wird ja sein, dass wenn du das mit ftp uploadedst, dass du nicht weis wie groß die datei ist bis sie oben ist. So dann hast du noch das problem, dass wenn du einen ftp client verwendest, kannst auch nicht gleichzeitig dazu ein php script starten -> ergo nicht möglich. Das einzige was du machen kannst is, dass du halt über ein webinterface erst die datei freischaltest für die anzeige... aber setzt halt wieder einen "menschen" vorraus, der das macht und ich glaub das is in dem fall nicht der sinn
|
AoD
aka AngelOfDeath
|
Warum nicht? Das soll derjenige machen der die Datei hochlädt.
|
kleinerChemiker
Here to stay
|
ist die datei vielleicht gesperrt, während sie hochgeladen wird? dann könntest du das vorher überprüfen.
|
fatmike182
Agnotologe
|
na so og kompliziert hab ichs mir nicht vorgestellt Ok, dann werd ich einfach die Fehlermeldung unterdrücken. Das is nur ein Portal für Vorlesugsunterlagen/Skriptsammlungen/Audiodatein von Vorlesungsmitschnitten für einen Studiengang mit 30 Personen. Für den Zweck kann eine unterdrückte Fehlermeldung verkraftet werden! btw: hab leider noch keine zeit gehabt zu schaun wie ich das automatisieren könnt (also alle paar min schaun, ob eine neue Datei am ftp is, wenn eine neue Datei da ist, dann diese in die DB eintragen - also Name, Dateityp, Größe); sprich: bis jetzt war ich die Person, die die tabelleneinträge manuell gemacht hat. Also kann cih ja slebst auch abprüfen, ob die Datei schon 100%ig oben ist. Aber Optimum wäre eben ein automatisches Eintragen gewesen edit: gesperrt? Ich glaub die Datei existiert unter dem komischen Bufferstream-name der nicht dem Dateinamen entspricht. Also ich hab manuell den Dateinamen ageben müssen und das php-skript holt sich eben per explode-array den Datentyp und per filesize die Größe. falls nicht gesperrt: wie überprüf ich das? Btw: is ein freeanbieter, also hab ich kein upload-skript auf html-Basis. Also das Überprüfen via javascript spielts nicht.
Bearbeitet von fatmike182 am 31.03.2008, 16:33
|