webentwicklung-frage-antwort-db.com.de

Beim Versuch, eine Datei in der Entwicklung auf Laravel 5 hochzuladen, erhalte ich stream_socket_sendto (): error

Ich versuche einen einfachen Upload von einer Datei, so dass einem Land eine Sounddatei für seine Hymne angehängt ist. Ich verwende PHP 7.2.10 mit Laravel 5.7.19 .

Mein Formular enthält ein Feld namens Hymne und das Formular beginnt mit 

<form id="form-app" enctype="multipart/form-data"
      method="post"
      action="{{ route('storeCountryAnthemMPOnly',['id' => $co->id]) }}">

Die Route in web.php lautet:

Route::post('storeCountryAnthemMPOnly/{id}',
            '[email protected]')
       ->name('storeCountryAnthemMPOnly');

und meine Funktion in der Steuerung ist nur:

public function storeCountryAnthemMPOnly(Request $request, $id)
{
  dd($request);
}

Wenn ich den Submit-Button drücke, bekomme ich:

stream_socket_sendto (): Eine Anforderung zum Senden oder Empfangen von Daten wurde nicht zugelassen, da der Socket nicht verbunden ist und (beim Senden eines Datagramm-Sockets mit einem sendto-Aufruf) keine Adresse angegeben wurde.

Ich kann das nicht verstehen und Hilfe wird sehr geschätzt.

8
Jim

Datei kann nicht auf den Server hochgeladen werden, und es liegt nicht an Laravel, sondern an Ihrem Server.

Ich hatte genau das gleiche Problem mit der gleichen Umgebung. Das Problem war, dass die Datei zu groß war und daher nicht an einen temporären Speicherort hochgeladen werden konnte. Obwohl die Datei nicht auf den Server hochgeladen wurde, versuchte Laravel immer noch, sie zu lesen. Aus diesem Grund erhalten Sie "no address was supplied"

In meinem Fall konnte die Datei aufgrund von Größenbeschränkungen nicht hochgeladen werden. In Ihrem Fall ist es jedoch möglicherweise ein anderer Grund, warum die Datei nicht hochgeladen werden kann.

Ich habe es gelöst, indem ich die Grenzen in php.ini geändert habe.

memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M

Neben Größenbeschränkungen habe ich noch einen Vorschlag: Überprüfen Sie, ob Sie über die richtigen Berechtigungen für den Ordner mit temporären Uploads verfügen.

Sie können auch Serverprotokolle prüfen.

1
Arturek

Haben Sie eine MAX_FILE_SIZE-Eingabe in Ihr Formular eingefügt? Wenn ja, müssen Sie den Wert erhöhen. Ich hatte das gleiche Problem und konnte es beheben, indem ich den Wert auf den richtigen erhöhte. Dies ist die endgültige Größe, die ich eingegeben habe.

<input type="hidden" name="MAX_FILE_SIZE" value="10485760">

Ich denke, Laravel prüft diese Eingabe in der Hintergrundszene.

0
VeRJiL

Sie haben Form :: model style in Ihrer Aktions-URL verwendet. Ändern Sie Ihre Aktion in Form-Tag in

action="/storeCountryAnthemMPOnly/{{ $co->id }}"
0
iazaran