webForumDet fria alternativet

filuppladdning

1 svar · 374 visningar · startad av dreas

dreasMedlem sedan jan. 2004140 inlägg
#1

Hej!
Har ett filuppladdningsscript som ser ut på följande:

if(isset($_POST['uploadform'])){

		  			
           $file_tmp = $_FILES['filetoupload']['tmp_name'];
           $file_name = $_FILES['filetoupload']['name'];
           $file_size = $_FILES['filetoupload']['size'];
           
           // check if no file selected.
     if (!is_uploaded_file($file_tmp)){
           echo "<p>CV skickades utan dokument bifogat.</p>";
           }
		
	 else {

           // check file size
           if ($file_size > $size_bytes){
              echo "<p><font color=\"#0066FF\">Tack för din ansökan!<br>Du kan nu logga in med dina uppgifter och intresseanmäla dig till olika jobb.</b></font>»<a href=login.php>Logga in</a><br><br>Error: Filen är för stor. Filen måste vara <b>". $size_bytes / 1024 ."</b> KB.</p>";
              exit();
           }
		   
           //check file extension
           $ext = strrchr($file_name,'.');
           if (($extlimit == "yes") && (!in_array(strtolower($ext),$limitedext))) {
              echo("<p><font color=\"#0066FF\">Tack för din ansökan!<br>Du kan nu logga in med dina uppgifter och intresseanmäla dig till olika jobb.</b></font>»<a href=login.php>Logga in</a><br><br>CV skickades utan dokument bifogat.<br>Fel filändelse</p>");
              exit();
           }

           // Check if file exists
           if(file_exists($upload_dir.$file_name)){
              echo "<p><font color=\"#FF0000\">Filen <b>$file_name</b> existerar redan.</font>»<a href=../tjansteman.php>Tillbaka</a></p>";
              exit();
           }

           // remove spaces from file name, replace with "_".
           $file_name = str_replace(' ', '_', $file_name);
		   
           //Move the File to the Directory
           //move_uploaded_file('filename','destination')
           if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) {
		                        	
		   	}
        <?php
		echo "<p>"
			."Var vänlig lägg till ditt namn till filnamnet.<br><br>" 
            ."<input type=\"file\" name=\"filetoupload\"><br>"
            ."<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$size_bytes\"><br><br>"
			."<br><br>"
            ."<input type=\"Submit\" name=\"uploadform\" value=\"Skicka\">";
			?>

Nu är det så att jag vill sätta namnet till något annat än vad den egentligen heter (säg till ett personnr), för att hålla filnamnen unika.
Jag har testat att ändra på denna rad:
$file_tmp = $_FILES['filetoupload']['tmp_name'];

men utan resultat. Har även fifflat lite med if-satsen där filen tillslut skrivs.
Den testar ju ifall filnamnet redan existerar, så det skulle vara kanon om man kunde ändra filnamnet till önskat i ett så tidigt skede som möjligt.

Mvh
Andreas

The_HulkMedlem sedan juni 20031 837 inlägg
#2

För att spara filen med ett annat namn får du ändra på raden

if (move_uploaded_file($file_tmp,$upload_dir.$file_name)) {
                                    
               }

du kan läsa mer om bool move_uploaded_file ( string filename, string destination )https://www.php.net

/red
du får ändra
$upload_dir.$file_name till det som passar dig.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)