move_uploaded_file n'a pas de travail, pas d'erreur

Je suis en cours d'exécution l'exécution d'un script qui se déplace un fichier téléchargé avec move_uploaded_file(). Je l'ai fait des milliers de fois, mais pour une raison que ça ne fonctionne pas. J'ai confirmées suivantes:

  1. <form> à l'aide de method="post" et de corriger enctype
  2. de fichier correct référencé à partir de la forme
  3. répertoire dispose des autorisations 777
  4. tous les memory_limit, max_execution_time, etc sont mis à super haute paramètres pour éviter les délais d'attente

En gros, le script ci-dessous retourne avec juste Your image is too big.. J'ai également activé TOUTES les erreurs à l'affichage et ne comprends toujours pas une erreur. Des idées?

$time = time();
$target_path = "/absolute/path/to/temp/directory/temp/";

$target_path = $target_path.$time.'.jpg'; 

if(move_uploaded_file($_FILES['image']['tmp_name'], $target_path)) {            

} else{
        $error .= '<li>Your image is too big.</li>';
}

À l'aide de 1and1 hébergement avec php.ini hack 😛

Mise à JOUR de 1

Je voudrais ajouter que la réponse du script se produit exactement au bout de 60 secondes.

Mise à JOUR 2

Nous avons peut-être quelque part avec cette. Juste print_r($_FILES) et ceci est le résultat de la matrice:

Array ( 
    [image] => Array ( 
        [name] => P2120267.JPG 
        [type] => 
        [tmp_name] => 
        [error] => 1 
        [size] => 0 
    ) 
) 

Donc ce qui m'amène à croire que le fichier n'est pas téléchargé correctement sur le serveur ou quelque chose? J'ai vérifié et le formulaire de publication est <form action="" method="post" enctype="multipart/form-data">. Ainsi, à partir de ce que je peux dire, le fichier n'est pas téléchargé sur le serveur de la temp?

Mise à JOUR 3

Remarqué la [error] => 1 dans le tableau ci-dessus. C'est apparemment vers le bas pour la taille du fichier est plus gros que le upload_max_filesize. Cependant, lorsque j'ai mis ce que 128M, j'obtiens un écran blanc de la mort au bout de 60 secondes. Le fichier que je suis un téléchargement de 2,5 MO

Voici mon php.fichier ini:

register_globals=off
memory_limit = 128M 
max_execution_time=3600 
post_max_size = 128M
upload_max_filesize= 128M 

Mise à JOUR 4

Avec les détails ci-dessus, il semble que je suis un WSOD, mais l'image est upoaded. Alors, comment arrêter les WSOD? Je ne peux pas trouver toutes les erreurs liées n'importe où.

MISE À JOUR DE 5 - TROUVÉ!

Honte sur moi de ne pas vous donner les gars, tout le code. Il ressemble à son à faire avec cette ligne:

resizeImage($feedBurnerStatsSource, PHOTOMSGDIR.'temp/'.$time.'-tmp.jpg',$width,$height);

Dans le code suivant:

function resizeImage($source, $destination = NULL,$wdt, $height = NULL){
if(empty($height)){
//Height is nit set so we are keeping the same aspect ratio.
list($width, $height) = getimagesize($source);
if($width > $height){
$w = $wdt;
$h = ($height / $width) * $w;
$w = $w;
}else{
$w = $wdt;
$h = $w;
$w = ($width / $height) * $w;
}
}else{
//Both width and Height are set.
//this will reshape to the new sizes.
$w = $wdt;
$h = $height;
}
$source_image = @file_get_contents($source) or die('Could not open'.$source);
$source_image = @imagecreatefromstring($source_image) or die($source.' is not a valid image');
$sw = imagesx($source_image);
$sh = imagesy($source_image);
$ar = $sw/$sh;
$tar = $w/$h;
if($ar >= $tar){
$x1 = round(($sw - ($sw * ($tar/$ar)))/2);
$x2 = round($sw * ($tar/$ar));
$y1 = 0;
$y2 = $sh;
}else{
$x1 = 0;
$y1 = 0;
$x2 = $sw;
$y2 = round($sw/$tar);
}
$slate = @imagecreatetruecolor($w, $h) or die('Invalid thumbnail dimmensions');
imagecopyresampled($slate, $source_image, 0, 0, $x1, $y1, $w, $h, $x2, $y2);
//If $destination is not set this will output the raw image to the browser and not save the file
if(!$destination) header('Content-type: image/jpeg');
@imagejpeg($slate, $destination, 75) or die('Directory permission problem');
ImageDestroy($slate);
ImageDestroy($source_image);
if(!$destination) exit;
return true;
}

Donc, WSOD signifie que son une sorte de mourir sans un message. Des idées?

Essayez un print_r($_FILES); pour voir l'intégralité des FICHIERS de tableau. Il peut contenir un code d'erreur. Votre message d'erreur n'est pas vraiment btw, parce que vous ne faites pas une vérification de la taille et de tous condition d'erreur sera de retour "image trop grande"
Nom de fichier peut ne pas être valide. C'est que le fichier de jeu de clés?
Si vous n'obtenez pas de messages d'erreur, essayez de copy() au lieu de move_uploaded_file(). Aussi jeter un oeil à la error.log dans de tels cas.
Que target_path semble particulièrement étrange, c'est la fonction error_reporting ?
essayez echo sur $_FILES['image']['tmp_name'] et $target_path dans else bloc à vérifier sont les chemins d'accès correct.

OriginalL'auteur David | 2011-04-13