Problème upload bloqué

Bonjour,

On a mis en place un script d'upload qui envoi le fichier via ajax. Tout fonctionnait normalement jusqu'à ce qu'on décide d'uploader un fichier plus grand 200~300Mo. La on a l'upload qui se bloque/ne progresse pas. Et on a l'erreur 413 Request Entity Too Large
On a évidemment augmenter les valeurs pour dans le user.ini pour couvrir cela mais cela n'a rien changé
```
upload_max_filesize=512M
post_max_size=512M
```

Avec des fichiers plus petit 77Mo l'upload marche normalement

il y a une limite sur un mutualisé, 130 Mo par défaut su Ovh
vérifie avec un phpinfo() si tes valeurs .user.ini sont prises en compte

il me semble avoir testé 256M


il y a une limite sur un mutualisé, 130 Mo par défaut su Ovh

Oui et c'est en recherchant sur ce forum que j'ai vu qu'on pouvait les modifié avec un fichier .user.ini. Et effectivement les valeurs dans phpinfo sont ceux du fichier

je le suis mal exprimé, le défaut est de 130Mo
mais le maxi je ne le connais, j'ai noté avoir testé 256M

Je suis descendu a 256M et j'ai essayé avec un fichier de 200Mo toujours le même erreur

je n'ai pas de souci



`.user.ini`:
```text
; La taille maximale d'un fichier téléchargé
upload_max_filesize = 512M

; taille maximale de publication, affecte également le téléchargement de fichier
post_max_size = 512M
```

`3584M` ok
`4096M` KO


; La taille maximale d'un fichier téléchargé
upload_max_filesize = 512M

; taille maximale de publication, affecte également le téléchargement de fichier
post_max_size = 512M


J'ai fait la même config quand j'ai publié posé le problème. Ce qui me semble bizarre c'est que si le code ne fonctionnait pas l'upload ne fonctionnerait tout simplement pas peu importe la taille du fichier ou le format du fichier.
Avec un fichier de 70Mo ce la marche avec un autre de 200Mo il ne marche pas. Ce pourrait-il qu'ovh bloque cela intentionnelement? pourant j'ai aussi éssayé de désactiver le firewall

> J'ai fait la même config

j'aurai tendance à dire non, à moins que TON phpinfo n'indique pas comme user_ini.filename la valeur `.user.ini`

> j'ai aussi éssayé de désactiver le firewall

le meilleur moyen d'avoir des soucis… ça n'en est pas un et comment l'as tu désactivé?
c'est vérifié dans `.ovhconfig`?


j'aurai tendance à dire non, à moins que TON phpinfo n'indique pas comme user_ini.filename la valeur .user.ini

En fait c'est le cas


J'ai désactiver dans le manager. Et aussi vérifier dans le fichier .ovhconfig
```
http.firewall=none
```

ok, alors je ne vois pas facteur bloquant

Bonjour,


upload qui envoi le fichier via ajax

votre script envoie ça comment, de manière exacte ?

Car je pense que vous vous prenez une limite définie sur le proxy frontale du mutu.

Si vous faite le même upload mais avec un script en pure PHP ?

Cordialement, janus57


votre script envoie ça comment, de manière exacte ?

En utilisant http://malsup.com/jquery/form/ JQueryForm
```
$('#upload').ajaxSubmit({
dataType: 'json',
beforeSubmit: function () {
$('.progress-bar').width('0%');
},
uploadProgress: function (ev, position, total, percentageComplete) {
$('#submitbtn').val('Upload en cours');
var progressPercent = (ev.loaded / (ev.total / 100)) + '%';
$('.progress-bar').css('width', progressPercent);
},
success: function (data) {
//UPLOAD SUCCESS
},
resetForm: true
});
```

> une limite définie sur le proxy frontale du mutu.

laquelle?

Bonjour,


laquelle?

si le proxy est toujours un nginx frontale il y a une directive "client_max_body_size" et/ou "client_body_timeout " qui peut interférer.

@KarimY : possible d'avoir un exemple en ligne ?
Note : N'étant pas un dev je comprend rien à votre bout de code et surtout je vois pas comment est fait l'upload vers le serveur dans le bout de code donnée.

Cordialement, janus57


comment est fait l'upload vers le serveur dans le bout de code donnée.

En fait c'est comme si on envoyait juste un formulaire avec ces données mais sans rechargé la page.

Pour ce qui est du traitement côté backend
```
if (!empty($_FILES)) {
if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {
$ext = pathinfo($_FILES['uploadfile']['name'], PATHINFO_EXTENSION);
$unique_name = sha1(mt_rand(1, 9999) . uniqid()) . time() . '.' . $ext;
$source_path = $_FILES['uploadfile']['tmp_name'];
$target_path = WWW_ROOT . 'img/videos/' . $unique_name;
if (move_uploaded_file($source_path, $target_path)) {
$data['content'] = $unique_name;
} else {
$data['error'] = true;
$data['content'] = 'Erreur upload';
}
} else {
$data['error'] = true;
$data['content'] = 'Erreur upload';
}
}
```

@KarimY : possible d'avoir un exemple en ligne ?


Oui, j'ai fait en sorte qu'elle soit accessible sans authentification pour le moment
http://intranet.logenord.com/videos/ajout

Bonjour,

après quelques test la limite se trouve vers les 128M (comme upload_max_filesize qui est à 128M par défaut).

Du coup je crains que OVH est harmonisé la limite du proxy frontale avec la limite par défaut de PHP qu'il ont mis en place.

Du coup je pense que même avec un formulaire traditionnel un fichier de 128M+ ne passera pas si c'est bien une limite imposé sur le frontale.

Cordialement, janus57


Du coup je crains que OVH est harmonisé la limite du proxy frontale avec la limite par défaut de PHP qu'il ont mis en place.


Donc la configuration avec .user.ini ne changera rien, la limite sera toujours de 128M. pourtant @kyodev a dit qu'il n'avait pas de souci

3584M ok
4096M KO


3584M c'est pas 3+Go

j'ai juste regardé phpinfo… :frowning:

Donc c'est le proxy frontal qui bloque?