29. juli 2005 - 10:25Der er
25 kommentarer og 1 løsning
Overfør fil-værdi via pop-up (tror jeg nok)
Hej jeg er ved at lave en 'gem fil' funktion (i php), og når man er ved at gemme en fil, der allerede eksisterer på serveren, spørger en lille javascript pop-up, om man vil overskrive filen.
Mit problem er, at jeg ikke får overført fil-værdien "$_FILES['filnavn']['name']" efterfølgende (på grund af pop-up'en tror jeg). Hvordan skal man gøre det i javascript?
if(is_file($_SERVER["DOCUMENT_ROOT"] . '/pics/'.$_FILES['filnavn']['name'])) { echo " <script type=\"text/javascript\"> <!-- var answer = confirm(\"En fil med det navn eksisterer allerede på serveren. Vil overskrive filen?\") if (answer){
if(is_file($_SERVER["DOCUMENT_ROOT"] . '/pics/'.$_FILES['filnavn']['name'])) { echo " <script type=\"text/javascript\"> <!-- var answer = confirm(\"En fil med navnet {$_FILES['filnavn']['name']} eksisterer allerede på serveren. Vil overskrive filen?\") if (answer){
1) script1.php modtager en fil fra <inpur type="file"> 2) Den videredelegerer til script2.php hvis en fil findes i forvejen
Og så er det: Du har *ingen* adgang til de $_POST variabler og $_FILES variabler, der er i script1.php. Løsningen er i script1.php at gemme den/de uploadede file/r med et unikt navn, og så hvis brugeren siger ok til overskrivning at kopiere dem over, og ellers slette dem.
erikjacobsen --> Ja du har helt ret, bortset fra ,at jeg bare kalder script1.php igen.
Din løsning virker egentlig meget fin, men kan du fortælle mig, hvordan jeg tager filen, som er blevet gemt unikt, og overskriver den anden. Det har jeg ikke prøvet at gøre før, nemlig...
erikjacobsen --> det fungerer bare perfekt. Tak for det. Smid et svar.
Ved I eventuelt hvordan man sikrer, at en side ikke indlæser fra cachen? Jeg har nemlig lige fået et problem... Når jeg har erstattet et billede med et andet, vises billedet på siden, og desværre er det det gamle billede den viser, selvom det nye billede har erstattet det...
Ja ;) I et PHP-script er det nemt nok at ændre headers, så der ikke caches. Billeder, der hentes som med <img src="xxxxxx.jpg"> er lidt mere bøvlet. Er det Apache eller IIS du bruger?
Mnjah, er det ikke Apache? Prøv om se om du har lov til at skrive noget af det i .htaccess-filer. Du skulle kunne lægge een i kataloget med billeder, der så siger at billederne ikke må caches.
En anden mulighed er at hver gang at skrive en random tekst ved hvert billede:
<img src="whatever.jpg?ksdhwudho9832hfk">
Så vil ingen browser tro det er samme billede, selv om navnet er det samme ;)
Jeg kan godt finde en .htaccess-fil, men har vist ikke helt styr på, hvad der skal ændres. Men æniways, det andet med <img src="whatever.jpg?ksdhwudho9832hfk"> virker fortrinligt, så jeg siger mange tak for hjælpen herfra.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.