[RESOLU] upload recalsitrant

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] upload recalsitrant

Re: upload recalsitrant

par tycoons » 12 déc. 2016, 14:52

re moogli,
j ai suivi tes conseil tous mis en dur le chemin.
Donc la le dossier ce creer au bonne endroit par contre il ne move toujours pas.
voiçi le code modifier

Code : Tout sélectionner

// verifier le user types et movinig files if( intval($_POST['user_id']) !== '0' ) { $user_directory_name=$_POST['user_id']; // Crée le dossier du user if (file_exists("/var/www/upload/drop/stock".$user_directory_name)) { echo "Le dossier $user_directory_name existe <br />"; }else { $old = umask(0); mkdir("/var/www/upload/drop/stock/".$user_directory_name, 0777, true); umask($old); echo "Le dossier de destinatation a été créé<br />"; if ($old != umask()) { die('An error occurred while changing back the umask'); } } //faire un nom unique $files = sprintf("/var/www/upload/drop/$user_directory_name/%s.%s", sha1_file($_FILES['file']['tmp_name']), $ext); echo $files; } //deplace le fichier if ( !move_uploaded_file($_FILES['file']['tmp_name'],$files )) { throw new RuntimeException('echec de deplacement de fichier.');
apres beaucoup d'éssais sa fonctionne merci pour l'aide

Re: upload recalsitrant

par moogli » 12 déc. 2016, 13:58

si tu peux utilise quelle que chose de plus fiable que getcwd. le chemin c'est pas forcément clair en fonction des import ;)

Perso j'ai tendance à créer une constante dans le fichier configuration (avec basename et __FILE__ par exemple).
tu peux aussi mettre en dur le chemin de base ça fonctionne plutôt bien ;)


@+

Re: upload recalsitrant

par tycoons » 12 déc. 2016, 12:30

bonjour moogli
j ai chmod en recursif tous le dossier upload
et donner les droit a www-data group et user
j ai ajouter a mon code le unmask comme decrit dans le manuel sans succes

Code : Tout sélectionner

// Crée le dossier du user if (file_exists($destination.$user_directory_name)) { echo "Le dossier $destination.$user_directory_name existe <br />"; }else { $old = umask(0); mkdir($user_directory_name, 0777, true); umask($old); echo "Le dossier de destinatation a été créé<br />"; if ($old != umask()) { die('An error occurred while changing back the umask'); } }
je sais que sa viens :D
il me creer bien mon dossier user_directory_name mais pas ou bonne endroit grrr
structure de mon dossier
upload = dossier de mon aplli ->stock= dossier de stockage- > user_directory_name
il me creer mon dossier a la racine de mon aplli dans upload

Re: upload recalsitrant

par moogli » 12 déc. 2016, 12:09

salut,

est tu sur des droits effectifs ?
que retourne mkdir (true / false)

@+

Re: upload recalsitrant

par tycoons » 12 déc. 2016, 12:01

Bonjour @rthur,
le echo m affiche sa /tmp/phpQbjDqY
j ai deux message erreur:
PHP Warning: move_uploaded_file(/var/www/upload/drop/stock/dgfhdfh/ebb1d44886bd5863fe22c4bcb5c02ab11a8d95fb.zip): failed to open stream: No such file or directory in /var/www/upload/drop/action-file-upload.php on line 100,
PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpQbjDqY' to '/var/www/upload/drop/stock/dgfhdfh/ebb1d44886bd5863fe22c4bcb5c02ab11a8d95fb.zip' in /var/www/upload/drop/action-file-upload.php on line 100, referer: http://localhost/drop/
code couleur en rouge user_dierctory_name en vert le nom du fichier

Re: upload recalsitrant

par @rthur » 12 déc. 2016, 11:27

Bonjour,

Quel est le message d'erreur complet ?
Si tu fais un echo de $_FILES['file']['tmp_name'], est-ce que le fichier existe bien sur ton serveur ?

upload recalsitrant

par tycoons » 12 déc. 2016, 11:20

Bonjour à tous,
J'ai un casse tête avec mon upload de fichier qui me dit " failed open stream" :roll:
voiçi mon bout de code qui doit faire mon upload

Code : Tout sélectionner

$destination= getcwd()."/stock"; $user_directory_name =$_POST['user_id']; // Crée le dossier du user if ( !file_exists($destination.$user_directory_name) ) { echo "Le dossier de destinatation n'existe pas<br />"; mkdir($user_directory_name, 0777, true); echo "Le dossier de destinatation a été créé<br />"; } //faire un nom unique $files = sprintf("$destination/$user_directory_name/%s.%s", sha1_file($_FILES['file']['tmp_name']), $ext); } //deplace le fichier if ( !move_uploaded_file($_FILES['file']['tmp_name'],$destination.$user_directory_name.$files )) { throw new RuntimeException('echec de deplacement de fichier.'); }
tous fonctionne sauf le move upload files et je pige pas pourquoi j ai cette erreur.
failed to open stream: No such file or directory ligne 100
contexte debian 8 apache 2.4 php7 en local
si vous pouviez m'éclairer un peu
merci