我正在尝试从一个文件中进行简单的上传,以便一个国家/地区为其国歌附加一个声音文件。我正在使用 PHP 7.2.10 和 Laravel 5.7.19。
我的表单包含一个名为 anthem 的字段,表单以
开头<form id="form-app" enctype="multipart/form-data"
method="post"
action="{{ route('storeCountryAnthemMPOnly',['id' => $co->id]) }}">
web.php
中的路由是:
Route::post('storeCountryAnthemMPOnly/{id}',
'CountryController@storeCountryAnthemMPOnly')
->name('storeCountryAnthemMPOnly');
我在 Controller 中的功能是:
public function storeCountryAnthemMPOnly(Request $request, $id)
{
dd($request);
}
当我按下提交按钮时,我得到:
stream_socket_sendto(): A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) no address was supplied.
我无法理解这一点,非常感谢帮助。
最佳答案
文件无法上传到服务器,这不是laravel的错,而是你的服务器。
我在同样的环境下遇到了同样的问题。问题是文件太大,所以无法上传到临时位置。虽然文件没有上传到服务器,但 Laravel 仍在尝试读取它,所以这就是为什么你得到 “没有提供地址”
。
在我的情况下,文件无法上传,因为超出了大小限制,但在您的情况下,这可能是文件无法上传的另一个原因。
我通过更改 php.ini
中的大小和内存限制解决了这个问题。
memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M
除了大小限制,我还有一个建议:确保您对临时上传的文件夹有适当的权限。
您还可以检查服务器日志。
关于php - 当尝试在 Laravel 5 上上传开发中的文件时,我得到 stream_socket_sendto() : error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53932406/