Hoi,

Ik heb een upload systeempje dat werkt via uploadify, er is echter een probleem: uploadify stuurt geen MIME types mee (komt door flash, die stuurt alleen: application/octet-stream mee).

Op het uploadify forum zag ik dat je dit zo kon oplossen:

<?php

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$_FILES['Filedata']['type'] = finfo_file($finfo, $_FILES['Filedata']['tmp_name']);
finfo_close($finfo);

?>


Echter werkt het uploaden soms niet, door te debuggen ben ik erachter gekomen dat het aan het bovenstaande stukje ligt.

Ik krijg verder ook geen errors in mijn error log of in de response.

Weet iemand wat het is, of hoe ik eventueel op een andere manier het MIME-type kan ophalen?

Alvast bedankt,
Milan
Je zou system kunnen proberen.

<?php
echo system("file -i -b ".$_FILES['filedata']['tmp_name']);
?>

Dit werkt alleen op een linux OS.
Helaas is system geblokkeerd wegens beveiligings redenen..

PHP Warning: system() has been disabled for security reasons in ..
Hmm... 2 opties.
Of je gaat naar een hoster die het wel toestaat.

Of je probeert een custom php.ini te gebruiken.
Kijk eens in je phpinfo of je suphp gebruikt.
Want dan zou je dat eventueel kunnen proberen.
Dan moet ik je helaas teleurstellen dan gaat mijn hack optie niet door.
Met welkte mime types gaat het verkeerd?
Bij een bepaald .mp3 bestand hangt 'ie vast oid bij dat stukje code, ik kan verder geen verschillen ontdekken tussen de bestanden (behalve dat het andere liedjes zijn dan, en andere bitrate)

Hmm op dit moment werkt geen enkel bestand meer.. Na 30 seconden geeft uploadify het op, ik denk dat het iets is met max execution time, maar je hebt toch geen 30 seconden nodig voor een bestand uploaden?

bestand hangt 'ie vast oid bij dat stukje code

Hoe groot is dat bestand?
Heb je niet gewoon de max execution time overschreden of is het bestand niet te groot?
2MB, maar soms werkt het wel en soms niet, het is heel raar.

Hier mijn code; wel een beetje slordig wegens debugging:

De eerste 2 mails ontvang ik, die erna niet meer

<?php

require_once('/home/milan/domains/milandrossaerts.nl/public_html/projecten/e-motion/includes/config.php');

$_SERVER['DOCUMENT_ROOT'] = '/home/milan/domains/milandrossaerts.nl/fileUpload/';

//$_SERVER['DOCUMENT_ROOT'] = str_replace('public_html', '', $_SERVER['DOCUMENT_ROOT']) . 'fileUpload/';

mail('[email protected]', 'test', 'test');

if (!empty($_FILES)) 
{
    
    mail ('[email protected]', 'joa', $_FILES['Filedata']['tmp_name']);
    
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $_FILES['Filedata']['type'] = finfo_file($finfo, $_FILES['Filedata']['tmp_name']);
    finfo_close($finfo);
    
    mail('[email protected]', 'jeps', 'jeps');
	    
	if ($core->fileCheck($_FILES['Filedata'], 'fileUpload')) {
	   
        $timestamp = microtime(true) . '-' . mt_rand(1, 999);
                
        $fileInfo = pathinfo($_FILES['Filedata']['name']);

        $extension = strtolower($fileInfo['extension']);
        
        mail('[email protected]', 'jeps1', 'jeps1');
        
        if ($extension == 'mp3')
        {
            
            $tempFile   = $_FILES['Filedata']['tmp_name'];
            $targetPath = $_SERVER['DOCUMENT_ROOT'];
            $targetFile = rtrim($targetPath, '/') . '/' . $timestamp . '.mp3';
        
  		    move_uploaded_file($tempFile, $targetFile);
            
            $mysql->query("INSERT INTO files (fTimestamp, fOriginalName, fExt, fSize, fFolderId) VALUES ('" . $timestamp . "', '" . $mysql->escape($_FILES['Filedata']['name']) . "', 'mp3', '" . $_FILES['Filedata']['size'] . "', '" .  $mysql->escape($_POST['fId']) . "')");
            
            echo '1';
            
        }else if ($extension == 'wav')
        {
            
            $tempFile   = $_FILES['Filedata']['tmp_name'];
            $targetPath = $_SERVER['DOCUMENT_ROOT'];
            $targetFile = rtrim($targetPath, '/') . '/' . $timestamp . '.wav';
        
  		    move_uploaded_file($tempFile, $targetFile);
            
            $mysql->query("INSERT INTO files (fTimestamp, fOriginalName, fExt, fSize, fFolderId) VALUES ('" . $timestamp . "', '" . $mysql->escape($_FILES['Filedata']['name']) . "', 'wav', '" . $_FILES['Filedata']['size'] . "', '" .  $mysql->escape($_POST['fId']) . "')");
            
            echo '1';
            
        }else if ($extension == 'doc')
        {
            
            $tempFile   = $_FILES['Filedata']['tmp_name'];
            $targetPath = $_SERVER['DOCUMENT_ROOT'];
            $targetFile = rtrim($targetPath, '/') . '/' . $timestamp . '.doc';
        
  		    move_uploaded_file($tempFile, $targetFile);
            
            $mysql->query("INSERT INTO files (fTimestamp, fOriginalName, fExt, fSize, fFolderId) VALUES ('" . $timestamp . "', '" . $mysql->escape($_FILES['Filedata']['name']) . "', 'doc', '" . $_FILES['Filedata']['size'] . "', '" .  $mysql->escape($_POST['fId']) . "')");
            
            echo '1';
            
        }else if ($extension == 'docx'){
            
            $tempFile   = $_FILES['Filedata']['tmp_name'];
            $targetPath = $_SERVER['DOCUMENT_ROOT'];
            $targetFile = rtrim($targetPath, '/') . '/' . $timestamp . '.docx';
        
  		    move_uploaded_file($tempFile, $targetFile);
            
            $mysql->query("INSERT INTO files (fTimestamp, fOriginalName, fExt, fSize, fFolderId) VALUES ('" . $timestamp . "', '" . $mysql->escape($_FILES['Filedata']['name']) . "', 'docx', '" . $_FILES['Filedata']['size'] . "', '" .  $mysql->escape($_POST['fId']) . "')");
            
            echo '1';
            
        }else if ($extension == 'pdf'){
            
            $tempFile   = $_FILES['Filedata']['tmp_name'];
            $targetPath = $_SERVER['DOCUMENT_ROOT'];
            $targetFile = rtrim($targetPath, '/') . '/' . $timestamp . '.pdf';
        
  		    move_uploaded_file($tempFile, $targetFile);
            
            $mysql->query("INSERT INTO files (fTimestamp, fOriginalName, fExt, fSize, fFolderId) VALUES ('" . $timestamp . "', '" . $mysql->escape($_FILES['Filedata']['name']) . "', 'pdf', '" . $_FILES['Filedata']['size'] . "', '" .  $mysql->escape($_POST['fId']) . "')");
            
            echo '1';
            
        }else{
            
            echo 'Geen geldig bestand! (.mp3, .wav, .doc, .docx, .pdf)';
            
            exit;
            
        }
        
	} else {
	   
		echo 'Geen geldig bestand! (.mp3, .wav, .doc, .docx, .pdf)';
        
        exit;
        
	}
    
}else{

    echo 'Geen bestand overgedragen';
    
}

?>
Zet eens bovenin je script:

<?php
 ini_set('max_execution_time', 300);  // 5 minuten
?>
Werkt ook niet, blijft hij 5 minuten hangen helaas

Reageren