J'essaye un simple téléchargement à partir d'un fichier afin qu'un pays ait un fichier son pour son hymne attaché. J'utilise PHP 7.2.10 avec Laravel 5.7.19 .
Mon formulaire comprend un champ nommé hymne et le formulaire commence par
<form id="form-app" enctype="multipart/form-data"
method="post"
action="{{ route('storeCountryAnthemMPOnly',['id' => $co->id]) }}">
L'itinéraire dans web.php
est:
Route::post('storeCountryAnthemMPOnly/{id}',
'CountryController@storeCountryAnthemMPOnly')
->name('storeCountryAnthemMPOnly');
et ma fonction dans le contrôleur est simplement:
public function storeCountryAnthemMPOnly(Request $request, $id)
{
dd($request);
}
Lorsque j'appuie sur le bouton d'envoi, je reçois:
stream_socket_sendto (): Une demande d'envoi ou de réception de données a été refusée car le socket n'est pas connecté et (lors de l'envoi sur un socket datagramme utilisant un sendto call) aucune adresse n'a été fournie.
Je ne peux pas comprendre cela et l'aide est grandement appréciée.
Le fichier ne peut pas être téléchargé sur le serveur et ce n’est pas la faute de Laravel, mais de votre serveur.
J'ai eu exactement le même problème avec le même environnement. Le fichier étant trop volumineux, il ne pouvait pas être chargé dans un emplacement temporaire. Bien que le fichier n’ait pas été chargé sur le serveur, laravel essayait toujours de le lire, c’est pourquoi vous obtenez "no address was supplied"
.
Dans mon cas, le fichier n'a pas pu être téléchargé, en raison du dépassement des limites de taille, mais dans votre cas, c'est peut-être une autre raison pour laquelle le fichier ne peut pas être téléchargé.
Je l'ai résolu en modifiant les limites dans php.ini
memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M
Outre les limites de taille, j'ai une autre suggestion: vérifiez que vous disposez des autorisations appropriées pour le dossier des téléchargements temporaires.
Vous pouvez également consulter les journaux du serveur.
Vous avez utilisé le style Form :: model dans votre URL d'action. Changez votre action dans la balise de formulaire en
action="/storeCountryAnthemMPOnly/{{ $co->id }}"