0
Ich habe 2 Subdomain:Wie move_uploaded_file von einer Subdomain zu einer anderen Subdomain?
- admin.example.com - Administrationspanel
- static.example.com - Hochgeladene Bilder
Wie ich Datei move_uploaded_file
für das Hochladen verwenden können von der ersten Subdomainwurzel zur zweiten Subdomainwurzel?
Upload-Funktion:
define('UPLOAD_DIR', '/home/.../static.example.com/htdocs/uploads/');
define('UPLOAD_ADDR', 'http://static.example.com/uploads/');
define('TEMP_DIR', '/home/.../admin.example.com/htdocs/temp/');
function upload_file($input, $upload_subdir) {
if (!file_exists($_FILES[$input]['tmp_name']))
return false;
$sha1file = sha1_file($_FILES[$input]['tmp_name']);
$tmp_name = TEMP_DIR . $sha1file;
$new_name = $upload_subdir . '/' . substr($sha1file, 0, 5) . '_' . $_FILES[$input]['name'];
move_uploaded_file($_FILES[$input]['tmp_name'], $tmp_name);
rename($tmp_name, UPLOAD_DIR . $new_name);
if (file_exists(UPLOAD_DIR . $new_name))
return $new_name;
else
return false;
}
Test:
upload_file('image' /* Input name */, 'images' /* subdir in UPLOAD_DIR (this is existing dir) */);
Hinweise:
- Der os von Server CentOS
UPLOAD_DIR
undTEMP_DIR
ist richtig absolute Richt. Auch ich testete relative dir nicht funktioniert.- Ich testete direkt
move_uploaded_file
(ohne Datei in das temporäre Verzeichnis der aktuellen Subdomäne zu kopieren), die nicht funktioniert. - Keine Warnung
'move_uploaded_file()' kümmert sich nicht um den Hostnamen/die Domäne. Sagen Sie einfach, wo auf dem Server Sie die Datei speichern möchten. Wenn Sie relative URLs von der Scripts-Position aus verwenden, sollten Sie '__DIR__' verwenden, um den absoluten Pfad zum Skript zu erhalten:' upload_file (__ DIR__. '/ Image') '. –
Wenn es ein Problem gibt, ist es fast immer eine der Dateizugriffsberechtigungen. Obwohl das in Subdomains nicht der Fall sein sollte. – JBH
Magnus Eriksson. '__DIR __. 'Image /'' lädt die Datei in die aktuelle Subdomain –