[RESOLU] Problème upload gros fichier

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème upload gros fichier

Re: Problème upload gros fichier

par thienou » 19 juil. 2013, 19:14

Bonjour,

J'ai résolu mon problème c'était du à une sécurité que j'avais mise sur mes requêtes ajax.

Re: Problème upload gros fichier

par sirakawa » 19 juil. 2013, 09:01

<!-- Le type d'encodage des données, enctype, DOIT être spécifié comme ce qui suit -->
<form enctype="multipart/form-data" action="_URL_" method="post">
  <!-- MAX_FILE_SIZE doit précéder le champ input de type file -->
  <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  <!-- Le nom de l'élément input détermine le nom dans le tableau $_FILES -->
  Envoyez ce fichier : <input name="userfile" type="file" />
  <input type="submit" value="Envoyer le fichier" />
</form>
extrait de :
http://www.php.net/manual/fr/features.f ... method.php

Re: Problème upload gros fichier

par moogli » 18 juil. 2013, 21:36

ajoute un var_dump($_FILES); au début.

sans la barre de progression le script fonctionne ?


@+

Re: Problème upload gros fichier

par thienou » 16 juil. 2013, 22:47

Voici le code du formulaire
<form action='fichier.php' id='upload_uploadfile_form' method='post' enctype='multipart/form-data'>
     <div style='float:left;'>
          <input type='file' id='upload_uploadfile_input' name='upload_uploadfile_input' size='30' />
     </div>
     <div id='upload_uploadfile_progress' class='upload_progress' style='float:right;display:none;'>
          <div id='upload_uploadfile_bar' class='upload_bar'></div >
          <div id='upload_uploadfile_percent' class='upload_percent'>0%</div >
     </div>
     <div style='float:right;'><input type='submit' id='upload_uploadfile_button' class='buttoninput' value='Ajouter un fichier'></div>	
</form>	

Re: Problème upload gros fichier

par moogli » 16 juil. 2013, 22:40

a quoi ressemble le formulaire ?

Re: Problème upload gros fichier

par thienou » 16 juil. 2013, 22:00

Pour déplacer le fichier j'utilise move_uploaded_file.

Comme indiqué le retour du nom temporaire $_FILES['input']['tmp_name'] est vide comme quand le fichier n'est pas présent.

[javascript]
function upload_uploadfile_js()
{
var upload_uploadfilebar = $('#upload_uploadfile_bar');
var upload_uploadfilepercent = $('#upload_uploadfile_percent');

$('#_upload_uploadfile_form').ajaxForm({
beforeSend: function() {
$('#upload_uploadfile_progress').show();
$('#upload_uploadfile_input').attr('disabled', 'disabled');
$('#upload_uploadfile_button').attr('disabled', 'disabled');

var percentVal = '0%';
upload_uploadfilebar.width(percentVal);
upload_uploadfilepercent.html(percentVal);
},
uploadProgress: function(event, position, total, percentComplete) {
var percentVal = percentComplete + '%';
upload_uploadfilebar.width(percentVal);
upload_uploadfilepercent.html(percentVal);
},
success: function()
{
},
complete: function(xhr) {
$('#upload_uploadfile_progress').hide();

if(xhr.responseText == 'secure_fault')secure_fault('upload_fault');
else
{
//Suite du programme
}
}
});
}
[/javascript]
$error_upload = 0;
					
$upload_uploadfile_name = $_FILES['upload_uploadfile_input']['name'];
$upload_uploadfile_tmpname = $_FILES['upload_uploadfile_input']['tmp_name'];
					
$nom_img = time().".".substr(strtolower(strrchr(basename($upload_uploadfile_name), ".")), 1);
					
if(!@move_uploaded_file($upload_uploadfile_tmpname, "../images/".$nom_img))$error_upload = 1;
else
{
    //Suite du programme
}
Donc dans mon car j'ai $error_upload à 1

Re: Problème upload gros fichier

par moogli » 16 juil. 2013, 21:50

salut,


tu en fait quoi de ton fichier ?
qu'est ce qui te fait dire qu'il n'y a pas de fichier temporaire ?

sans code on ne peu pas t'aider plus.


@+

Problème upload gros fichier

par thienou » 16 juil. 2013, 21:46

Bonsoir,

Je viens vous demander de l'aide après avoir pas mal tourné autour de mon problème.

J'utilise un système d'upload d'image sur une interface client avec une barre de progression actualisée.

Image

Ce système utilise jquery et cette librairie

Mon problème est que lorsque le la durée du téléchargement dépasse 30 secondes le fichier n'est pas présent dans le dossier temporaire ($_FILES['input']['tmp_name'] vide) et donc une erreur se produit lorsque je veux la déplacer.

J'ai essayé de modifier certains paramètres dans php.ini mais rien y fait :
max_execution_time = 200
post_max_size = 100M
upload_max_filesize = 40M
max_input_time = 200
memory_limit = 128M

Les paramètres sont bien modifiés (vu avec phpinfo).

Les fichiers que j’essaie de télécharger font environ 5Mo.

Je n'ai pas de doute sur le système de la barre, j'ai bien les retours qu'il faut lorsqu'elle est complète (status http 200), je pense que c'est bien un problème de fichier temporaire qui n'est pas présent.

Avez-vous une idée pour résoudre mon problème ?

D'avance merci.