Zitat:
Zitat von feuervogel
ihm scheint arg langweilig zu sein oder er will sich künstlich selbst probleme auferlegen, weil er sonst keine zu haben scheint ;-)
|
Ist wieder nicht wahr ;)
Ich will ein Uploadpopup bauen -- unter Zuhilfenahme von nur einem JS.
Zitat:
Zitat von meikel
Nein. Der Name ist ein Zufallsstring, den möglicherweise sogar der Apache generiert, weil der das File entgegennimmt und erst danach PHP aufruft, wenn in dem Action URL PHP Tags gefunden werden.
|
Apache vielleicht, aber nicht Zufall. Die temp_namen sind fortlaufend.
Beispiel:
File1: Datei:C:\WINDOWS\TEMP\php11.tmp
File2: Datei:C:\WINDOWS\TEMP\php12.tmp
Es sind jedoch nicht nur zahlen. Irgendwann werden Buchstaben dranngehängt (C:\WINDOWS\TEMP\php2E3.tmp) usw.
Durch Tests ist mir auch aufgefallen dass sich Apache dies anscheinend nicht file-basiert merkt. Es muss also im Speicher sein (durch Neustart des Rechners gehts wieder bei php11.tmp los).
Ich hab natürlich auch versucht, den temp_namen manuell zu beeinflussen:
Code:
$var = preg_replace('/C:\\\\WINDOWS\\\\TEMP\\\\(.*)\\.tmp/s', 'C:\\WINDOWS\\TEMP\\upl_$1.tmp', $_FILES['name']['tmp_name']);
$_FILES['name'] = array('name' => $_FILES['name']['name'],
'type' => $_FILES['name']['type'],
'tmp_name' => $var,
'error' => $_FILES['name']['error'],
'size' => $_FILES['name']['size']);
Funktioniert auch hervorragend:
Code:
["name"]=>
array(5) refcount(1){
["name"]=>
string(18) "back_header_st.gif" refcount(2)
["type"]=>
string(9) "image/gif" refcount(2)
["tmp_name"]=>
string(29) "C:\WINDOWS\TEMP\upl_php2D.tmp" refcount(2)
["error"]=>
long(0) refcount(2)
["size"]=>
long(7142) refcount(2)
}
}
Aber es wird kein Bildchen hochgeladen.
Anscheinend hat da php eine Sicherheitsfunktion die dies verhindert.
Der einzige Unterschied bei der Ansicht des generierten Codes und des beenflussten Codes ist refcount(3) (nicht geändert) // refcount(2) (geändert)
So, soweit eine nähere Ausführung dazu.
@ Feuervogel: Nicht jeder macht nur das was er mit Sicherheit auch schafft. Ich bastle an so unmöglichen Sachen in meiner Freizeit ;)
Und trotzdem habe ich nicht genug davon *fg*.
Allgemein code ich schon eine Zeit - hab aber noch nicht 2mal genau das selbe gemacht. Also etwas Phantasie ist immer gefragt - was aber nicht heißen soll dass man gleich zu viel Zeit hat.
So long .