Neuigkeiten:

still alive...

Hauptmenü

Datei Upload mit problemen...

Begonnen von bergbenji, 23. Juni 2007, 15:53:22

Vorheriges Thema - Nächstes Thema

bergbenji

Hi @ all...
Habe ein kleines problem mit meinem Datei Upload...
Die Dateien werden zwar alle hochgeladen - aber die rechte liegen bei dieser datei wohl auf der Seite des Servers.
Das heisst, ich kann sie per FTP nicht bearbeiten/Downloaden/löschen - und auch per html nicht runterladen.
Das wäre nicht das schlimmste - aber da ich die dateien per header an einen Nutzer senden muss, bleiben diese files, die der User bekommt immer auf 0kb.
Hat jemand vielleicht ne Idee, wie ich das ändern kann?!
Kenne mich mit PHP eigentlich recht gut aus, aber irgendwie ist mir dazu bisher noch nichts eingefallen.
Habe auch schon die Rechte der Dateien per CHMOD auf 0777 gesetzt - bringt aber trotzdem nichts...
Danke euch für Antworten und gute Ratschläge!
LG Benji

bergbenji

Ups - weiss net warum - aber irgendwie bin ich im Mainthread verrustscht... /uploads/emoticons/icon_e_sad.gif.ad4af608d2eb611202443ae3a67ed606.gif\" alt=\":-(\" /> Sry sollte eigentlich in PHP Algemein... My failure...

k00ni

Hallo,
ich denke auch, dass hochgeladene Dateien immer die Standardrechte des Sysrems bekommen, nachdem sie hochgeladen wurden.
Das wäre nicht das schlimmste - aber da ich die dateien per header an einen Nutzer senden muss, bleiben diese files, die der User bekommt immer auf 0kb.[/quote]
Das verstehe gerade nicht ganz. Wie genau sendest du die Datei? Werden Dateinamen und weitere Eigenschaften übertragen oder sieht der User nur namenlose Dateien?
Weiterhin interessiert mich, ob du die Daten von Server zu Server überträgst oder bspw. von Server zu E-Mail.
 
Grüße

bergbenji

HI - habe das Prob gerade gefunden... Flüchtighkeits fehler - der mir nun 3 Tage gekostet hat /uploads/emoticons/icon_e_sad.gif.ad4af608d2eb611202443ae3a67ed606.gif\" alt=\":-(\" />
hatte beim move_uploadet_files im dateinamen (\"$path $filename\") ein leerzeichen - durch dieses wurde die datei geschrieben - aber immer mit nem leerzeichen - was man nicht gesehen hat - weder im FTP progi noch anders... Habe das leerzeichen weg gemacht und nun klappt alles /uploads/emoticons/icon_e_smile.gif.f7ec63a2b1c3d90a9415e40455642502.gif\" alt=\":-)\" /> Sry!
Sende die datei mit Filename an den User!
Die Dateien liegen in einem HTaccess geschütztem Ordner.
Und die werden mittels Header Conettype application .... and den benutzer gesendet.
(Wo ich nun das nächste prob habe)
Die Datei worin der Headeraufruf ist, ist im ./ dir...
Die Dateien jedoch im ./dateien/ dir...
Mein header funktioniert nicht mit dem aufruf:
 


$filesize=filesize(\"dateien/\".$filename);
$fileplace=\"dateien/$filename\";
header(\"Content-Type: application/octet-stream\");
header(\"Content-Disposition: attachment; filename=$fileplace\");
header(\"Content-Transfer-Encoding: binary\");
header(\"Cache-Control: post-check=0, pre-check=0\");
header(\"Content-Length: \".$filesize);

 
 
Hat da vielleicht noch jemand ne kleine Hilfe? /uploads/emoticons/icon_razz.gif.c9907c8264378acad2086d30c88802a5.gif\" alt=\":-P\" />

mahe

header(\"Content-Disposition: attachment; filename=$fileplace\");
Mit dem Header gibt man an wie das File heißen soll, sprich was dann im Fenster steht dass beim User aufgeht.
Und nicht wo das File liegt!
readfile() verwendest du danach eh?

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


bergbenji

So schauts im gesamten aus:
 


$sqlbefehl=\"Select * from $tab_aufgaben where id=\'$objektid\'\";
$ergebnis=mysql_query($sqlbefehl,$serverid);
$filename = mysql_fetch_array($ergebnis);
$numloadspush=$filename[loads]+1;
$sqlbefehl_push1=\"Update $tab_aufgaben SET loads=$numloadspush where id=$objektid\";
@mysql_query($sqlbefehl_push1,$serverid);
$sqlbefehl_delete=\"Delete from $tab_warenkorb where aufgabe_id=$objektid and user_id=$_SESSION[userid]\";
@mysql_query($sqlbefehl_delete,$serverid);
$filename2=$filename[filename];
 
$dlfile=@fopen($filename2,\'r\');
if ($dlfile===false)    
{        die(\'Cannot open file\');    }
$filesize=filesize($filename2);
//$fileplace=\"dateien/$filename\";
header(\"Content-Type: application/octet-stream\");
header(\"Content-Disposition: attachment; filename=\\\"$filename2\\\"\");
header(\"Content-Transfer-Encoding: binary\");
header(\"Cache-Control: post-check=0, pre-check=0\");
header(\"Content-Length: \".$filesize);
while (!feof($dlfile))    
{        
echo fread($dlfile,1024);        
flush();        
}
fclose($dlfile);

 
 
Muesste doch stimmen oder?!
Jetzt wo du es sagst... Stimmt das im header nur der Filename steht - bin so langsam echt am ende...

mahe

Versuch mal davor ein
ini_set(\'max_execution_time\',0);
Aber vorsicht damit, dadurch kann das Skript ewig laufen!!!

http://blog.mahe.at\" rel=\"external nofollow\">http://blog.mahe.at/wp-content/uploads/2007/06/88x31_1.jpg\" alt=\"88x31_1.jpg\">


Ja, diese Signatur dient zur Werbung!


Und dass ich meine Posts wiederfinde ...


bergbenji

So - habe es nun glaube ich fertig...
 
So schauts aus:
 


 

 
 
Und funktioniert sogar  [/uploads/emoticons/icon_e_surprised.gif.a005678239f11b45b64b526b2c82e9a1.gif\" alt=\":o\" />]
Habe mich dazu durchgerungen - die dateien einfach mit rechtelevel 0770 hochzuladen -
Korrigiert mich wenn ich falsch liege - aber der Server und ueber die Scripts besteht ein voll zugriff, nur man kann nicht direkt ueber http://adresse zu datei
zugreifen oder?!
Mit dem Senden der Dateiper Header geht alles...

Habe mich dazu durchgerungen - die dateien einfach mit rechtelevel 0770 hochzuladen - [/quote]
Ganz schlechter Plan. Wenn man ein Binary hochlädt - beispielsweise eine vorkompilierte Shell - bekommt dieses Gruppen/User-Ausführrechte.
Korrigiert mich wenn ich falsch liege - aber der Server und ueber die Scripts besteht ein voll zugriff, nur man kann nicht direkt ueber http://adresse zu dateizugreifen oder?!
[/quote]
Wenn man darauf zugreifen kann und die Datei Ausführungsrechte besitzt hast Du eine Möglichkeit geschaffen, deinen Webspace zu übernehmen.

bergbenji

Danke fuer den hinweis... also sollten die rechte 660 auch ausreichen - richtig?!

Besser noch, wenn Du auch die Gruppen-Rechte beschränkst.

all your base are belong to us / Discord