Ik ben op zoek naar een script waarmee klanten foto's kunnen uploaden naar een map in mijn public_html
Ik ga namelijk kalenders etc ontwerpen die ze kunnen bestellen maar dan moeten ze wel foto's kunnen uploaden.
heeft iemand zon script?

mvg
Ikzelf ben wel een fan van de uploadclass van http://verot.net.

[size=xsmall]Toevoeging op 10/11/2015 13:42:47:[/size]

Ikzelf ben wel een fan van de uploadclass van http://verot.net.
Jasper Schellekens op 10/11/2015 13:40:53

dan moeten ze wel foto's kunnen uploaden.
heeft iemand zon script?

Wat heb je zelf al geprobeerd? Met Google is genoeg te vinden over het uploaden van afbeeldingen via php. Verot is daar één van.
Zeer interessant die class, kan je ook bijvoorbeeld elke keer een nieuwe map laten aanmaken voor elke klant? dat ik me niet rot hoef te zoeken naar de files.
Ja, met PHP kan dat: [php]mkdir[/php].
Eenvoudig te zoeken met: 'create directory with PHP'

Maar je kan ook de koppelingen met de foto's in je database organiseren.
Ik heb toch gekozen voor het simpele omdat ik super veel producten moet toevoegen.
Ik heb een zeer mooi script gevonden voor zijn leeftijd dan.
Alleen 1 probleem, je ziet in welke map wordt geupload en je kan de map kiezen.
Hoe kan ik dit wegkrijgen en hem naar public_html/images/kalenders laten uploaden?

het script:

<?php 
# Copyright © 2007 wimpel2
# [email protected]
# multi upload
 
define('NB_FILE_UPLOAD', '10'); // nombre de fichier a envoyer (aucune limite :) )
define('MAX_SIZE_FILE_UPLOAD',  '500000000' ); //soit 50 Ko
define('FILE_UPLOAD_DIR', dirname($_SERVER['SCRIPT_FILENAME']).'/'); // direction des fichier a uploader
$array_extention_interdite = array( '.bmp' , '.dib' , '.JPG' , '.JPEG' , '.JPE' , '.JFIF' , '.GIF' , '.TIFF' , '.PNG' );
 
 
function func_message($message='', $ok='')
{
echo '<table width="100%" cellspacing="0" cellpadding="5">';
if($ok == true){ echo '<tr bgcolor="#99FF99" ><td width="100">&nbsp;</td><td class="text_noir">'.$message.'</td></tr>' ;}
 
if($ok == false){ echo '<tr bgcolor="#FF99CC" ><td width="100">&nbsp;</td><td class="text_noir">'.$message.'</td></tr>';}
echo '</table>';    
}
 
$action = (isset($_POST['action'])) ? $_POST['action'] :'' ;
$dossier = (isset($_POST['dossier'])) ? $_POST['dossier'] :''  ;
if($dossier != '') {$dossier = $dossier.'/';}
$message_true = '';
$message_false = '';
 
switch($action)
{
case 'upload' : 
chmod(FILE_UPLOAD_DIR,0777);
 
for($nb = 1 ; $nb <= NB_FILE_UPLOAD ; $nb ++ )
{ 
 
if( $_FILES['file_'.$nb]['size'] >= 10 )
{  
if ($_FILES['file_'.$nb]['size'] <= MAX_SIZE_FILE_UPLOAD )
{ 
 
if ( !in_array( ereg_replace('^[[:alnum:]]([-_.]?[[:alnum:]])*\.' ,'.', $_FILES['file_'.$nb]['name'] ) , $array_extention_interdite) )
{ 
if($_POST['file_name_'.$nb] !=''){ $file_name_final = $_POST['file_name_'.$nb].$extension ;}
else { $file_name_final = $_FILES['file_'.$nb]['name'] ;}
 
$file_name_final = strtr($file_name_final, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
   'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
$file_name_final = preg_replace('/([^.a-z0-1]+)/i', '_', $file_name_final ); 
 
$_FILES['file_'.$nb]['name'] = $file_name_final;
 
move_uploaded_file( $_FILES['file_'.$nb]['tmp_name'] , FILE_UPLOAD_DIR . $dossier . $file_name_final );
 
$message_true .= 'Foto is verzonden : '.$_FILES['file_'.$nb]['name'] .'<br>'; 
}
else{
$message_false .= 'Er is iets fout gedaan : '.$_FILES['file_'.$nb]['name'] .' <br>'; 
}
}
else{ $message_false .= 'Foto is te groot '.MAX_SIZE_FILE_UPLOAD/1000 . 'ko : " '.$_FILES['file_'.$nb]['tmp_name'].'" <br>';}
}
}//end for
 
break;
}
?>
<head>
 
<style>
.body{  SCROLLBAR-ARROW-COLOR: #ff9933; 
SCROLLBAR-DARKSHADOW-COLOR: #000000; 
SCROLLBAR-BASE-COLOR: #005b70;
background-color:#ffffff}
.border{background-color:#000000}
.box{background-color:#f8f8f9;}
.text_noir{  color:#000000;
font-family: Verdana, Arial, sans-serif;
font-size: 11px;
font-weight:bold}
input, select{  font-family: Verdana, Arial, sans-serif;
font-size: 11px;
background-color: #ffffff;
border-color:"#ffffff"}
 
</style>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<?php if (function_exists('ini_get')) {?><br>
<table width="600" border="0" cellspacing="1" cellpadding="0" align="center" class="border">
<tr> 
<td>
<table width="100%" border="1" align="center" cellspacing="5" cellpadding="2" class="box">
<tr class="text_noir">
<td colspan="2" align="center">Uw mogelijkheden</td>
</tr>
<tr class="text_noir">
<td>file_uploads :</td>
<td> 
<?php if (ini_get('file_uploads') ==1) { echo 'On'; } else { echo 'Off'; }?>
</td>
</tr>
<tr class="text_noir">
<td>Toegestaande extensies :</td>
<td> <?php for ($i=0; $i < sizeof($array_extention_interdite); $i++)
{ echo $array_extention_interdite[$i] .' | '; }
?></td>
</tr>
</table> 
</td>
</tr>
</table><br>
<?php   }?>
<br>
<form name="form" enctype="multipart/form-data" method="post" action="<?php echo $_SERVER['PHP_SELF'] ; ?>">
<input type="hidden" name="action" value="upload">
<table  border="0" cellspacing="1" cellpadding="0" align="center" class="border">
<tr> 
<td>
<?php if($message_true != '') {  func_message($message_true, true); }
if($message_false != ''){  func_message($message_false, false); }
?>
<table width="100%" border="0" cellspacing="5" cellpadding="2" align="center" class="box">
<?php 
for($nb = 1 ; $nb <= NB_FILE_UPLOAD ; $nb ++ )
{  
?>
<tr class="text_noir"> 
<td>Foto <?php echo $nb; ?></td> <td><input type="file" name="file_<?php echo $nb; ?>"></td>
</tr>
<?php } ?>
<tr> 
<td colspan="2" align="right" class="text_noir"><?php echo FILE_UPLOAD_DIR ;?>
<select name="dossier">     
<option value=""></option>
<?php 
$repertoire = opendir(FILE_UPLOAD_DIR);  
while( $file = readdir($repertoire) ) 
{ 
$file = str_replace('.','',$file);
if( is_dir($file)) { 
?>
<option value="<?php echo $file; ?>"> <?php echo $file; ?>/</option>
<?php 
} 
} 
closedir($repertoire); 
?>
</select>
</td>
<td colspan="2" align="right"><input type="submit" value=" Verzend <?php echo $nb-1; ?> Foto's "></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</body> 
</div>
- Controleer niet alleen op extenties, maar ook vooral op mime-types.
- Gebruik geen 0777-rechten. Waarom zou je iedereen alle rechten willen geven? 755 is al voldoende.
- eregi-functies zijn verouderd.

Verder als antwoord op je vraag:
Haal die echo weg? Niet zo heel lastig te bedenken, lijkt me. En haal ook die selectbox weg, en zorg dat die waarde vast in je script staat.
dat snapte ik ook ja, maar welke code moet ik toevoege zodat hij naar die map upload bedoel ik

[size=xsmall]Toevoeging op 10/11/2015 16:23:41:[/size]

heeft t hiermee te make?
wat moet ik dan veranderen?
[code]
$repertoire = opendir(FILE_UPLOAD_DIR);
while( $file = readdir($repertoire) )
Controleer niet alleen op extensies, maar ook vooral op mime-types.

Vaak is dat equivalent, omdat de browser het MIME-type van een te uploaden bestand baseert op simpelweg de extensie. Tenzij je image magic gebruikt ofzo, en dat is volgens mij een soort van algoritme wat zoekt naar (byte?)patronen in het bestand, zodat je met een aan zekereheid grenzende waarschijnlijkheid zou kunnen stellen dat iets een afbeelding betreft.

Beter is om een gerichte controle uit te voeren op het bestand zelf.

Als je een afbeelding verwacht, controleer het bestand in de temp-directory met getimagesize(), als deze functie false retourneert dan is het bestand hoogstwaarschijnlijk geen afbeelding.
en hoe laat ik hem dan uploaden naar die map?
[php]move_uploaded_file[/php]

Reageren