- Mitglied seit
- 01. Apr 2009
- Beiträge
- 262
- Punkte für Reaktionen
- 0
- Punkte
- 22
Hallo liebes Forum,
ich sitzte gerade daran letoDMS auf der DS einzurichten. Das funktioniert auch recht gut, nur möchte ich den Import aus einer lokalen Datei ermöglichen. Auf meinem Testrechner mit Ubuntu geht das auch. Auf der Diskstation nicht.
leider bin ich nicht der Experte in PHP, so dass ich momentan total am Verzweifeln bin.
So sieht es aus:
Auf der DS gibt es unter /volume1/web/letodms/letoDMS/utils das Shellscript letoDMS-adddoc und die dort aufgerufene adddoc.php
Zusätzlich sind alle benötigten include-Dateien an den gewünschten Orten.
Dort habe ich nun eine einfache datei.txt angelegt, die von dem PHP-Skript geöffnet werden soll. Genau da komm ich aber nicht weiter.
Um zu kapieren, was wann wo eingestellt wird, habe ich dem Originalskript (zu finden hier ) einige echo ... hinzugefügt. Das sieht ja auch alles super aus, nur kommt die funktion is_readable immer zum Ergebnis, dass das nicht so ist :-(
Mein Skript im Anhang(ne, geht nicht hochladen...). Es reicht aber auch das original Skript zum Vergleich. Dort ist es Zeile 139 ff
Der entsprechende Teil meines Skriptes sieht jetzt so aus:
Aufgerufen wird das php-skript über ein shell Skript (letodms-adddoc) mit folgendem Inhalt:
auf der Konsole (ja ich bin root![Smile :) :)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Sie man sieht, werden die Zeilen:
garnicht ausgegeben... Warum???
Ein zum Testen der Funktion erstelltes Skript test.php
funktioniert wie erwartet.
Das 1. Skript (also das, wo irgendwie ein Fehler drin ist) kommt immer zu dem Ergebnis, dass die Datei nicht lesbar ist. Egal ob ich mit /volume1/web/... oder /var/service/web/... oder eben mit ./ oder ohne die datei.txt angebe.
Wie gesagt auf meinem Ubuntu-Laptop läuft das ganze wie gewünscht durch. Ich muss nur sudo voran stellen.
So ein sehr langer Text und danke fürs durchlesen!
jemand eine Idee? Die Entwickler von letoDMS sind da leider überfordert, da sie keine DS haben.
Achso: ich habe auf der DS111 wieder die stable-Firmware drauf und php --version sagt:
also kein ipkg oder so installiert.
ich sitzte gerade daran letoDMS auf der DS einzurichten. Das funktioniert auch recht gut, nur möchte ich den Import aus einer lokalen Datei ermöglichen. Auf meinem Testrechner mit Ubuntu geht das auch. Auf der Diskstation nicht.
leider bin ich nicht der Experte in PHP, so dass ich momentan total am Verzweifeln bin.
So sieht es aus:
Auf der DS gibt es unter /volume1/web/letodms/letoDMS/utils das Shellscript letoDMS-adddoc und die dort aufgerufene adddoc.php
Zusätzlich sind alle benötigten include-Dateien an den gewünschten Orten.
Dort habe ich nun eine einfache datei.txt angelegt, die von dem PHP-Skript geöffnet werden soll. Genau da komm ich aber nicht weiter.
Um zu kapieren, was wann wo eingestellt wird, habe ich dem Originalskript (zu finden hier ) einige echo ... hinzugefügt. Das sieht ja auch alles super aus, nur kommt die funktion is_readable immer zum Ergebnis, dass das nicht so ist :-(
Mein Skript im Anhang(ne, geht nicht hochladen...). Es reicht aber auch das original Skript zum Vergleich. Dort ist es Zeile 139 ff
Der entsprechende Teil meines Skriptes sieht jetzt so aus:
PHP:
echo "\n";
echo $filename;
echo "\n";
if (is_readable($filename)) {
echo "\n is_readable erfolgreich. Filename = ";
echo $filename;
echo "\n";
if(filesize($filename)) {
$finfo = new finfo(FILEINFO_MIME);
echo "\n Dateigroesse: ";
echo $filesize;
if(!$filetype) {
echo "\n Filetype: ";
echo $filetype;
$filetype = $finfo->file($filename);
}
} else {
echo "File has zero size\n";
exit(1);
}
} else {
echo "Datei ist nicht lesbar \n";
echo "Und nochmal filename = ";
echo $filename;
exit(1);
}
Rich (BBCode):
1 #!/bin/sh
2 /usr/bin/php -f /volume1/web/letodms/letoDMS/utils/adddoc.php -- $*
auf der Konsole (ja ich bin root
Rich (BBCode):
/volume1/web/letodms/letoDMS/utils # sh letodms-adddoc -F 1 -f ./datei.txt
Cache Loeschen
Folderid= 1
Ubergabe der Option filename ./datei.txt
./datei.txt
Datei ist nicht lesbar
/volume1/web/letodms/letoDMS/utils #
Sie man sieht, werden die Zeilen:
PHP:
echo "Und nochmal filename = ";
echo $filename;
Ein zum Testen der Funktion erstelltes Skript test.php
PHP:
<?php
$filename = 'datei.tx';
if (is_readable($filename)) {
echo "Die Datei ist lesbar \n";
echo "Filename = ";
echo $filename;
echo "\n";
} else {
echo "Die Datei ist nicht lesbar \n";
echo "Filename = ";
echo $filename;
echo "\n";
}
?>
Das 1. Skript (also das, wo irgendwie ein Fehler drin ist) kommt immer zu dem Ergebnis, dass die Datei nicht lesbar ist. Egal ob ich mit /volume1/web/... oder /var/service/web/... oder eben mit ./ oder ohne die datei.txt angebe.
Wie gesagt auf meinem Ubuntu-Laptop läuft das ganze wie gewünscht durch. Ich muss nur sudo voran stellen.
So ein sehr langer Text und danke fürs durchlesen!
jemand eine Idee? Die Entwickler von letoDMS sind da leider überfordert, da sie keine DS haben.
Achso: ich habe auf der DS111 wieder die stable-Firmware drauf und php --version sagt:
Rich (BBCode):
php --version
PHP 5.3.6 (cli) (built: Nov 26 2011 15:20:01)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
Zuletzt bearbeitet: