[PHP] Uitgebreide upload functie

Hier kan je al jouw zelfgemaakte scripts delen met andere.

[PHP] Uitgebreide upload functie

Berichtdoor TrafeX » wo okt 18, 2006 19:28

Ik heb een tijdje geleden een upload functie geschreven die overweg kan met meer dan 100.000 bestanden.
Dit is mogelijk doordat er gebruik wordt gemaakt van een bepaalde mappen structuur.
Hierdoor blijft de bestandsnaam + pad uniek.

Ik heb net de functie voorzien van nederlandse uitleg.

Als je hem wilt gebruiken kan je de source vinden op:
http://www.trafex.nl/dump/uploadFunction.phps

Code:
[php]
<?php
/**
* Upload a file and get information about the file for inserting in the database
*
* @author Tim de Pater <tim{AT}trafex{DOT}nl>
* @copyright ( c ) all rights reserved 2006
* @version 1.2 8-10-2006 20:23
*
* @param $fieldName = The name of the upload field in the form
* @param $uploadPath = The path to the upload directory
* @param $allowedExtensions = An array with allowed extensions. In lowercase
* @param $allowedMimeType = An array with allowed mime types. In lowercase
* @param $maxSize = The filesize limit in bytes. (0 = unlimited)
*
* @return Array with information about the uploaded file.
*/
function upload($fieldName, $uploadPath, $allowedExtensions, $allowedMimeTypes, $maxSize)
{
$realName = $_FILES[$fieldName]['name'];
$tmpName = $_FILES[$fieldName]['tmp_name'];
$mimeType = strtolower($_FILES[$fieldName]['type']);
$fileError = $_FILES[$fieldName]['error'];
$size = $_FILES[$fieldName]['size'];

// Kijkt of het upload pad eindigd op een /, zo ja verwijder die voor de netheid.
if(substr($uploadPath, -1) == "/")
{
$uploadPath = substr($uploadPath, 0, -1);
}

// Split de naam van het bestand om de extensie te achterhalen.
$splitFname = explode(".", $realName);
$extension = strtolower(end($splitFname));
// Als er geen . in de bestandsnaam voorkomt is er geen extensie.
if(strrpos($realName, ".") < 1)
{
$extension = "";
}
// Origninele bestandsnaam in kleine letters.
$fName = strtolower(basename($realName, "." . $extension));

// Haal de PHP instelling op en converteer naar bytes.
$phpIniSize = trim(ini_get("upload_max_filesize"));
$last = strtolower($phpIniSize{strlen($phpIniSize)-1});
switch($last)
{
case 'm':
$phpIniSize *= 1024;
case 'k':
$phpIniSize *= 1024;
}

// Verander 'gevaarlijke' karakters in ongevaarlijke.
$noalpha = 'Ã
Avatar gebruiker
TrafeX
TWnet Crew
 
Berichten: 315
Geregistreerd: vr aug 11, 2006 11:39
Woonplaats: Woerden

Keer terug naar Scripts

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast

cron