copy file bij het uploaden

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper

jasper

29/04/2009 11:17:00
Quote Anchor link
Het volgende probleem stelt zich bij het uploaden van een file. Ik sla de filepath op in de database en niet de file zelf. Het bestand wordt gekopieerd naar een folder. Wanneer ik een bestand voor de tweede keer wil uploaden dan zou hij het volgende moeten doen. Dus eerst is er een controle, dan ziet hij ok het is hetzelfde bestand en nu zou hij moeten (2) achter het bestand zetten. Dit is geen probleem om dit op te slaan in de database. Maar het originele bestand moet worden gekopieerd naar de folder met de nieuwe bestandsnaam. Weet iemand hoe je dit kan oplossen?
 
PHP hulp

PHP hulp

27/11/2024 06:35:56
 
Emmanuel Delay

Emmanuel Delay

29/04/2009 17:37:00
Quote Anchor link
Ben je hier tevreden mee?
Die (2) heb ik vervangen door het toevoegen van een _ .

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
if ( !empty($_FILES) )
  {

    $target_path = "uploads/";  // zorg dat deze map bestaat en de juiste rechten heeft.
    
    $newName = moveFileAndRename($target_path, $_FILES['foto']);  // die foto pas je zelf aan, naargelang de name van de file input
    
    // deze $newName kan je dus gebruiken als waarde voor de databank

    
    echo '<div>download <a href="'. $target_path . $newName .'">'. $newName .'</a></div>';
  }
  
function
moveFileAndRename($target_path, $file)
  {

    if ( substr($target_path, 0, -1) != '/')
      $target_path = $target_path . '/';      //
    
    $returnName = $file['name'];
    
    while ( file_exists($target_path . $returnName )  )
      {

        $returnName = renameFile($returnName);
        if ( empty($returnName) )
          return false;
      }

    if( move_uploaded_file($file['tmp_name'], $target_path . $returnName) )
      {

        return $returnName;
      }

    return false;
  }
function
renameFile($fileName)
{

  // Deze functie kijkt of een file bestaat.  Indien de file bestaat wordt een '_' toegevoegd aan de file naam.
  // Voel je vrij om deze functie aan te passen, zodat er bv. '(2)' wordt toegevoegd.

  $ext = explode('.', $fileName);
  $ext = $ext[ ( count($ext) - 1 )];
  // eventueel controleer je op extensie en laat je slechts een aantal extensies toe.  Bv. exe of php bestanden wil je meestal niet zomaar laten uploaden.
  $name = basename( $fileName, '.'.$ext);
  $name = $name . '_';
  $fileName = $name .'.'. $ext;
  return $fileName;
}

?>


Indien het trouwens enkel gaat om afbeeldingen, kan je beter dit gebruiken:
http://www.verot.net/php_class_upload.htm


Wat je trouwens ook kan doen, is de file altijd hernoemen. Geef de nieuwe file bv. een naam met de datetime van nu + een random getal van 4 cijfers.
Gewijzigd op 01/01/1970 01:00:00 door Emmanuel Delay
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.