04. marts 2007 - 21:05Der er
24 kommentarer og 1 løsning
Omdøb fil ved upload
Jeg har fundet understående på nettet. Det er ikke optimalt, da det ikke tjekker for flere ting, men det virker da :)
Dog mangler en vigtig funktion for mig, at fil-navnet bliver lavet om, når det uploades.
Alle billeder i mappen skal hedde 1.jpg, 2.gif, 3.gif, 4.jpeg osv. Dvs selve filtypen skal natuligvis være den samme som oprindeligt, man så er der et eller andet der skal læse, hvor langt nummeret er nået i rækken og så lægge én til, dermed skal næste fil hedde 5.et-eller-andet.
if(move_uploaded_file($_FILES['file']['tmp_name'], $des.$name)) { print "Filen ".$_FILES['file']['tmp_name']." er nu flyttet til ".$des.$name; } else { print "Der opstod en fejl!"; }
Synes du, det virker bøvlet. Jamen et er faktisk meget smart, da der ikke skal holdes styr på noget, når det oploades og samtidig bliver billederne trukket frem automatisk, den tager dem fra en ende af - dermed er der ikke noget "vedligeholdelse" :)
if(move_uploaded_file($_FILES['file']['tmp_name'], $des.$name)) { print "Filen ".$_FILES['file']['tmp_name']." er nu flyttet til ".$des.$name; } else { print "Der opstod en fejl!"; } } }
Hvad med bare at tjekke om filnavn eksisterer, og hvis det gør så smide et 1-tal efter navnet og prøve igen. Eks(ikke testet):
$target_path = "billed_mappe/";
$name = $_FILES['uploadedfile']['name'];
$file_path = $target_path . $name;
while (file_exists($file_path)) { print "The file $target_path exists renaming and trying again"; $ext = substr($file_path, strlen($file_path)-3, 3); $file = substr($file_path, 0, strlen($file)-3); $file_path = $file . 1 . $ext; }
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $file_path)) { echo "The file ". basename( $_FILES['uploadedfile']['name']). " has been uploaded"; } else { echo "There was an error uploading the file, please try again!"; }
Det giver jo ikke den ønskede virkning. Hvis vi siger den prøve 1, så vil næste step være 11 og 111 osv... Han ønsker 1, 2, 3, 4. Så $file++ vil være en bedre løsning.
jakobdo, der er et eller andet, der laver kage i den. Den kan godt uploade en fil, én fil, og den kommer til at hedde f.eks. 1jpg, altså uden punktum. Samtidig vil den ikke uploade flere filer - medmindre de hedder noget andet til efternavn, så kan den godt lave en ny, der hedder 1gif. Næste gang erstatter den vist bare den, der ligger der i forvejen, da den ikke bygger et nyt nummer på.
Kan du se, hvad der er galt? - jeg har pillet lidt rundt, men det havde ikke nogen gavnlig effekt :)
Kan det passe, den tager højde for jpg og JPG? Filerne hedder det lidt blandet, da mit camera laver det med stort JPG og jeg selv laver det med lille jpg.
Hvis jeg gør sådan: $images = glob("" . $des . "{*.jpg,*.gif,*.png,*.jpeg,*.JPG,*.GIF,*.PNG,*.JPEG}", GLOB_BRACE);
Er jeg så ikke ude over det? Kan man evt. gøre noget, der også tager højde for JpG? - min kæreste kommer også til at skulle lave nogen... ja så ved du jo, hvordan det kan gå, haha :)
Jeg kan nu se, når filen hedder noget med stort, JPG, så vil den heller ikke blive vist på siden. Kan man evt. omdøbe den til lille, jpg, undervejs, uanset hvordan det er skrevet fra starten?
jacobdo, der er 60 point mere på højkant, hvis du kan hjælpe med den sidste ting, der lige slår mig. Det kunne jeg være rart, hvis vi kunne se billedet - og godkende det inde, det bliver smidt op på serveren. Så har du en ide til, hvordan vi kan kan se billedet og under er der to knapper, godkend eller godkend ikke. Bliver det godkendt, smides det op på serveren og gør det ikke, starter man bare forfra.
Jeg har lavet nogle ændringer, da jeg ikke helt kan bruge din kode og det virker fint, indtil der skal uploades, så falder kæden af, det vil den desværre ikke...
Jeg kan bla. ikke bruge header, da jeg har html over min php kode, men det plejer jeg at erstatte med echo "<meta http-equiv='Refresh' content='0;url=?en-eller-anden-url'>"; og det virker altid. Dog har jeg nu erstattet det med en tekst, så der kommer en tekst, så jeg kan se, om billedet er uploadet eller ej.
Derudover har jeg erstattet dine action fra "'.$_SERVER['PHP_SELF'].'" til blot "", det plejer også at virke.
Min kode ser sådan nu sådan ud - og det hele virker som sagt, bortset fra at billedet ikke bliver uploadet:
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.