absoluter Pfad für file upload
Sandra
- php
hallo,
im unten stehenden script findet ein image upload statt. das image kann mit diesem script nur innerhalb von /opt/lampp/htdocs... gespeichert werden. Ich möchte aber das es in einen Ordner gespeichert wird, der parallel zu /opt.. liegt:
/SK/in/
wenn ich das script so schreibe
preg_replace("//[^/]+$/","",
$_SERVER["SCRIPT_FILENAME"])
."/SK/in//";
wird die Fehlermeldung ausgegeben, dass /SK/in/ unter /opt/lampp/htdocs nicht existiert
wie kann ich unten den absoluten Pad definieren???
vielen Dank im Voraus
Sandra
<?php
//page_open(array("sess" => "Example_Session"));
include("db_connect.php");
$name=$_FILES["image"]["name"];
// Ist ein Foto mitgeschickt worden?
if ($_FILES["image"]["size"] > 0) {
$foto = true;
preg_match("/(.\w+)$/",
$_FILES["image"]["name"],$match);
$typ = $match[1];
// wir erlauben nur Endungen von Bilddateien
if (in_array(
strtolower($typ),
array(".bmp",".jpg",".png",".jpeg"))) {
$dateiname = uniqid("").$typ;
$bildpfad =
preg_replace("//[^/]+$/","",
$_SERVER["SCRIPT_FILENAME"])
."/img/";
copy($_FILES["image"]["tmp_name"],
$bildpfad.$dateiname);
$newpath=$bildpfad.$dateiname;}
}
else
{
$foto = false;
}
das image kann mit diesem script nur innerhalb von /opt/lampp/htdocs... gespeichert werden. Ich möchte aber das es in einen Ordner gespeichert wird, der parallel zu /opt.. liegt:
/SK/in/
wie kann ich unten den absoluten Pad definieren???
Suche in der PHP-Anleitung nach der Funktion basename() bzw. ihrem Gegenstück dirname(); sollte sich unter den Dateisystemfunktionen finden.
copy($_FILES["image"]["tmp_name"],
$bildpfad.$dateiname);
Wenn mich nicht alles täuscht, gibt es in PHP aus Sicherheitsgründen eine spezielle Funktion zum Verschieben von hochgeladenen Dateien. Die solltest Du benutzen, nicht copy(), denn Du möchtest sicher nicht, daß Dir jemand etwas unterjubelt. Informiere Dich im Kapitel über Dateiuploads, dort ist das Vorgehen ausführlich beschrieben.
Gruß,
soenk.e