[php] upload de fichier sur free.fr - Mais pourquoi est-il aussi méchant?

Bonjour,

J’ai fait quelques tentatives pour faire de l’upload par POST sur mon compte free, dans un répertoire upload (créé avant test) :

  • Essai 1

Formulaire de type multipart/form-data, fichier de nom ‘file’

move_uploaded_file($_FILES['file']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/upload/monFichier.bin');

Rien du tout dans upload

  • Essai 2

Formulaire de type application/x-www-form-urlencoded, fichier de nom ‘file’ encodé en BASE_64

$output = fopen('./upload/monFichier.bin', 'wb');
fwrite($output, base64_decode($_POST['file']));
fclose($output);

Je récupère bien un fichier, mais corrompu

  • Essai 3

Même chose mais avec un simple URLEncode, même résultat

Pour les trois essais, test en local sur EasyPHP/PHP 4.x en safe_mode/WinXP, à chaque fois c’est OK

Je sèche un peu sur le problème :ane: … quelqu’un a une idée?

Merci :wink:

A priori, il y a réencodage de certains caractères dans la solution 3

magic_quotes_gpc -> stripslashes($_POST)

Je cherche toujours pour les 2 premiers cas :frowning:

Et les tailles des fichiers dans tout cela?

Gérés via le form en entrée (vérifié, OK)… Qu’est-ce que cela change en sortie?

La taille totale des fichiers que t’envoie :slight_smile:

"Je récupère bien un fichier, mais corrompu"

Est ce que le fichier est plus petit que ce à quoi tu t’attends, auquel cas je suspecterai un timeout, ou est ce que les données dedans ne sont pas celles que tu veux?

Voilà.

J’ai fait des contrôles sur les problèmes de Timeout. Mes tests se font sur des fichiers <64ko avec un débit suffisant, acquittement OK (envoyé après traitement) en moins d’une seconde. J’ai pu enregistrer les données transmises à free, le content-length envoyé est OK

Ce qui m’intéresse est surtout le premier cas, qui me semble être le plus propre… Qu’est qui m’empêche de récupérer un $_FILES[xxx][yyy]?

Merci pour ton aide