Dateidatum beim Copy (Datei-Upload)
Rico
- php
Hallöchen,
... ich mache einen Dateiupload zum Apache (WINNT) nach folgendem Script. Dabei wird jedoch immer das Dateidatum (geändert am ...) neu gesetzt. Kann man das umgehen, sodas das Datum bleibt?
SCRIPT:
?
if(!empty($file_name)){
if(copy($file,"$file_name")){
if(is_uploaded_file($file)){
echo "<b>Upload beendet!</b><br>";
echo "Dateiname: $file_name";
echo "<br>";
echo "Dateigröße: $file_size Byte";
}
}
}else{
?>
<html>
<head>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" enctype="multipart/form-data" method="post" action="testx.php">
<p>
<input type="file" name="file"><br>
<input type="submit" name="Abschicken" value="Download beginnen"></p>
</form>
</body>
</html>
<?
}
?>
Nein, das File wird doch neu auf dem Server angelegt, also ist es immer das aktuelle Datum.
Hallo Philipp,
... ich mache einen Dateiupload zum Apache (WINNT) nach folgendem Script. Dabei wird jedoch immer das Dateidatum (geändert am ...) neu gesetzt. Kann man das umgehen, sodas das Datum bleibt?
Mit der Funktion
int touch (string filename, int [time])
Steht in der PHP Doku, aber ob's unter M$ geht, mußt Du ausprobieren
if (touch ($DateiName, $IrgendEineZeit)) {
print "$DateiName Modifizierungs-Zeit wurde auf das aktuelle
Datum und die aktuelle Uhrzeit gesetzt.";
} else {
print "Tut mir leid, Modifikations-Zeit von $DateiName konnte
nicht geändert werden.";
}
CU Christoph
Moin
... ich mache einen Dateiupload zum Apache (WINNT) nach folgendem Script. Dabei wird jedoch immer das Dateidatum (geändert am ...) neu gesetzt. Kann man das umgehen, sodas das Datum bleibt?
Nein, das Originaldatum wird vom Browser normalerweise nicht mit übertragen. Alles was du machen könntest, währe ein Eingabefeld, in das du das Datum vom User eintragen lässt
if(copy($file,"$file_name")){
if(is_uploaded_file($file)){
Böse Falle! Diese beiden Zeilen sind in der falschen Reihenfolge. Das is_uploaded_file() ist eine Sicherheitsfunktion, damit du nicht einfach so beliebige Dateien deren Namen dir der User gibt durch die Gegend kopierst und damit zum Beispiel die Datei mit deinen Passwörtern für den User zugänglich machst. Daher erst überprüfen, und dann kopieren. Nachdem du /etc/passwd kopiert hast, brauchst du nicht mehr überprüfen ob das auch wirklich eine hochgeladene Datei war, dann ist es schon zu spät :)
--
Henryk Plötz
Grüße aus Berlin