Mal im Detail:
Wenn du Dateien hochlädst, werden die erst in ein temporäres Verzeichnis gepackt.
Dann kannst du bzw. dein Script sie ansehen und bei Bedarf in das passende Verzeichnis verschieben. Verschiebst du sie nicht, werden sie wieder gelöscht.
Du kannst aber auf das temporäre Verzeichnis nicht zugreifen; da hat dein Hoster die Konfiguration vermutlich nicht korrekt gesetzt.
Jetzt hast du drei Möglichkeiten:
1. Weise deinen Hoster auf das Problem hin. Bevorzugt!
2. Packe ins Verzeichnis [FONT="Courier New"]/wp-admin/[/FONT] eine [FONT="Courier New"].htaccess[/FONT] mit diesem Inhalt:
AddHandler php-fastcgi .php
Läuft PHP über FastCGI, gehört es meistens zu einer anderen Gruppe; Schreibprobleme gibt es hierbei seltener.
3. Schreib in deine [FONT="Courier New"]wp-config.php[/FONT] ganz ans Ende:
foreach ( array ( 'TMP', 'TEMP', 'TMPDIR' ) as $alternate_tmp_dir )
{
putenv(
"$alternate_tmp_dir="
. $_SERVER['DOCUMENT_ROOT']
. DIRECTORY_SEPARATOR
. '_ersatz_tmp'
);
}
Lege im Wurzelverzeichnis ein Verzeichnis [FONT="Courier New"]_ersatz_tmp[/FONT] an, gib ihm hohe Schreibrechte, und packe eine [FONT="Courier New"].htaccess[/FONT] hinein, in der steht:
# Kein HTTP-Zugriff.
order allow,deny
deny from all
Da dieses Verzeichnis nicht unbedingt automatisch gelöscht wird, mußt du es ab und zu selbst leeren.
Wenn alle drei Wege scheitern, weiß ich nicht mehr weiter.