Problème récupération fichier dans un formulaire
Bonjour,
Dans un système de messagerie, je donne la possibilité d'y joindre un ou plusieurs fichiers. Jusque là pas de problème.
Le soucis que j'ai, c'est que le $request->file('file')->path() me renvoi false, tout comme le getClientOriginalName(). Dans mon environnement de développement tout fonctionne résultat du dd($request->file('files')):
path: "C:\Users\arnaud\AppData\Local\Temp"
filename: "php8553.tmp"
basename: "php8553.tmp"
pathname: "C:\Users\arnaud\AppData\Local\Temp\php8553.tmp"
extension: "tmp"
realPath: "C:\Users\arnaud\AppData\Local\Temp\php8553.tmp"
aTime: 2021-10-21 15:53:57
mTime: 2021-10-21 15:53:57
cTime: 2021-10-21 15:53:57
inode: 0
size: 401838
perms: 0100666
owner: 0
group: 0
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
linkTarget: "C:\Users\arnaud\AppData\Local\Temp\php8553.tmp"
mais dans mon environnement de production cela ne fonctionne plus dd($request->file('files')):
path: "C:\Windows\Temp"
filename: "php6C0.tmp"
basename: "php6C0.tmp"
pathname: "C:\Windows\Temp\php6C0.tmp"
extension: "tmp"
realPath: false
aTime: 2021-10-21 15:48:14
mTime: 2021-10-21 15:48:15
cTime: 2021-10-21 15:48:14
inode: 0
size: 401838
perms: 0100666
owner: 0
group: 0
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
linkTarget: "C:\Windows\Temp\php6C0.tmp"
Je ne comprends pas pourquoi, et je suis à court d'idée pour résoudre ce problème. Avez-vous une piste viable ?
Merci d'avance pour votre aide
Bonjour,
Pour information, je vais vous mettre la solution à mon problème. Je pense que cela est dû que mon environnement de développement est sur un serveur Apache et que mon serveur de production est sous IIS
Code développement :
$attachment = [
'nom' => utf8_encode(str_replace(' ', '_', $file->getClientOriginalName())),
'typePiece' => str_replace('\\', '_', $file->getClientMimeType()),
'piecable_id' => $message->IDmessages,
'piecable_type' => 'messages',
'poids' => $file->getClientSize(),
'piece' => strtoupper(bin2hex(file_get_contents($file->path())))
];
Code production:
$attachment = [
'nom' => utf8_encode(str_replace(' ', '_', $file->getClientOriginalName())),
'typePiece' => str_replace('\\', '_', $file->getClientMimeType()),
'piecable_id' => $message->IDmessages,
'piecable_type' => 'messages',
'poids' => $file->getSize(),
'piece' => strtoupper(bin2hex(file_get_contents($file->getpathName())))
];
J'ai donc modifier mon code à 2 endroits :
$file->getSize() au lieu de $file->getClientSize()
$file->getpathName() au lieu de $file->path()
J'èspre que cela pourra servir à quelqu'un.
Bonne continuation à vous.
Vous ne pouvez pas répondre à ce sujet.