Hallo ik heb problemen met mijn upload script. Als ik mijn bestand wil uploaden naar mijn server en ik gebruik deze naam lindströmfoto.jpg. Dan wordt mijn foto steeds met foutieve naam opgeslagen namelijk lindströmfoto.jpg. Ik heb al alles geprobeerd maar ik kom er niet uit. Normaal gezien staan mijn utf8 headers allemaal correct. Ik zal alvast even mijn code tonen:


<?php
function upload($file_id, $folder="", $types="",$naam, $voornaam,$geboortedatum,$geboorteplaats,$infoNL,$infoEN,$sterfdatum) {
    if(!$_FILES[$file_id]['name']) return array('','No file specified');

    $file_title = $_FILES[$file_id]['name'];
    //Get file extension
    $ext_arr = split("\.",basename($file_title));
    $ext = strtolower($ext_arr[count($ext_arr)-1]); //Get the last extension

    //Not really uniqe - but for all practical reasons, it is
    $uniqer = substr(md5(uniqid(rand(),1)),0,5);
    $file_name = $file_title;//Get Unique Name ^-----^ $uniqer . '_' . 

    $all_types = explode(",",strtolower($types));
    if($types) {
        if(in_array($ext,$all_types));
        else {
            $result = "'".$_FILES[$file_id]['name']."' is not a valid file."; //Show error if any.
            return array('',$result);
        }
    }

    //Where the file must be uploaded to
    if($folder) $folder .= '/';//Add a '/' at the end of the folder
    $uploadfile = $folder . $file_name;

    $result = '';
    //Move the file from the stored location to the new location
    if (!move_uploaded_file($_FILES[$file_id]['tmp_name'], $uploadfile)) {
        $result = "Cannot upload the file '".$_FILES[$file_id]['name']."'"; //Show error if any.
        if(!file_exists($folder)) {
            $result .= " : Folder don't exist.";
        } elseif(!is_writable($folder)) {
            $result .= " : Folder not writable.";
        } elseif(!is_writable($uploadfile)) {
            $result .= " : File not writable.";
        }
        $file_name = '';
        
    } else {
        if(!$_FILES[$file_id]['size']) { //Check if the file is made
            @unlink($uploadfile);//Delete the Empty file
            $file_name = '';
            $result = "Empty file found - please use a valid file."; //Show the error message
        } else {
            chmod($uploadfile,0777);//Make it universally writable.
            mysql_query("INSERT INTO kunstenaar (naam, voornaam, geboortedatum,geboorteplaats,foto, infoNL, infoEN, sterfdatum) VALUES ('".$naam."', '".$voornaam."', '".$geboortedatum."', '".$geboorteplaats."', '".$file_name."','".$infoNL."', '".$infoEN."', '".$sterfdatum."')") or die(mysql_error());
			
			$image = WideImage::load("../img/kunstenaars/".$file_name);
			$resized = $image->resize(110, 110, 'outside');			
			
			$resized->saveToFile("../img/cache/".$file_name);					
        }
    }

    return array($file_name,$result);
}
?>


En nu mijn file waar de form post gebeurt:

  <form method="post" action="<?php $_SERVER['PHP_SELF']; ?>" name="form" enctype="multipart/form-data">
    <fieldset>
      <legend>Nieuwe kunstenaar toevoegen!</legend>
      <div>
        <label for="naam">Naam:</label>
        <input type="text" id="naam" name="naam" tabindex="1"/>
      </div>
      <div>
        <label for="voornaam">Voornaam:</label>
        <input type="text" id="voornaam" name="voornaam" tabindex="2"/>
      </div>
      <div>
        <label for="dag">Geboortedatum:</label>
      </div>
      <?php schrijfdatum("geboorteDag","geboorteMaand","geboorteJaar"); ?>
      <div id="sterfdatum">
      	<label for="dag">Sterfdatum:</label>
      </div>
       <div id="sterfdatum">
      	<?php schrijfdatum("sterfDag","sterfMaand","sterfJaar"); ?>
      </div>
      <div>
        <label for="geboorteplaats">Geboorteplaats:</label>
        <input type="text" id="geboorteplaats" name="geboorteplaats" tabindex="7"/>
      </div>
      <div>
      	<label for="overleden">Kunstenaar overleden?</label>
        <select id="overleden" name="overleden" onchange="wijzigLijst()" tabindex="8">
        	<option value="ja">Ja</option>
            <option value="neen">Neen</option>
        </select>
      </div>
      
      <div>
        <label for="infoNL">Extra informatie Nederlands:</label>
        <textarea name="infoNL" id="infoNL" tabindex="9"></textarea>
      </div>
      <div>
        <label for="infoEN">Extra informatie Engels:</label>
        <textarea name="infoEN" id="infoEN" tabindex="10"></textarea>
      </div>
      <div>
        <label for="image">Foto</label>
        <input type="file" name="image" tabindex="11" />
      </div>
      <input type="submit" value="toevoegen" name="kunstenaarToevoegen" tabindex="12">
    </fieldset>
  </form>
</div>
<?php
		if(isset($_POST['kunstenaarToevoegen']))
			{
				$naam = ucfirst(mysql_real_escape_string($_POST['naam']));
				$voornaam = ucfirst(mysql_real_escape_string($_POST['voornaam']));
				$geboortedatum = mysql_real_escape_string($_POST['geboorteJaar'])."-".mysql_real_escape_string($_POST['geboorteMaand'])."-".mysql_real_escape_string($_POST['geboorteDag']);
				
				$sterfdatum = mysql_real_escape_string($_POST['sterfJaar'])."-".mysql_real_escape_string($_POST['sterfMaand'])."-".mysql_real_escape_string($_POST['sterfDag']);
				$geboorteplaats = ucfirst(mysql_real_escape_string($_POST['geboorteplaats']));
				$infoNL = mysql_real_escape_string($_POST['infoNL']);
				$infoEN = mysql_real_escape_string($_POST['infoEN']);
				
				if($_POST['overleden'] == "neen")
				{
					$sterfdatum = "0000-00-00";
				}
				if($_FILES["image"]["tmp_name"]!== '')
				{
					 list($file,$error) = upload('image','../img/kunstenaars/','jpg,gif,png',$naam, $voornaam,$geboortedatum,$geboorteplaats,$infoNL,$infoEN,$sterfdatum);
					 if($error) print $error;
				}
				else
				{
					mysql_query("INSERT INTO kunstenaar (naam, voornaam, geboortedatum,geboorteplaats, infoNL, infoEN, sterfdatum) VALUES ('".$naam."', '".$voornaam."', '".$geboortedatum."', '".$geboorteplaats."', '".$infoNL."', '".$infoEN."', '".$sterfdatum."')") or die(mysql_error());
				}
        
				
		} // einde if waarde als men in de post zit
	
	}// einde gebruiker ingelogd


Ik gebruik deze utf8 headers:

<?php header('Content-type: text/html; charset=UTF-8'); ?>
<?php echo '<?xml version="1.0" encoding="UTF-8"?>'; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>website titel</title>
<meta http-equiv="Content-type" value="text/html; charset=UTF-8" />


Alvast bedankt

Joachim

Reageren