Php 尝试在Laravel 5上上载正在开发的文件时,我得到stream_socket_sendto():错误
我正在尝试一个简单的上传文件,这样一个国家的国歌有一个声音文件附加。我正在将PHP7.2.10与Laravel5.7.19一起使用 我的表单包含一个名为anthem的字段,表单以Php 尝试在Laravel 5上上载正在开发的文件时,我得到stream_socket_sendto():错误,php,file,laravel-5,Php,File,Laravel 5,我正在尝试一个简单的上传文件,这样一个国家的国歌有一个声音文件附加。我正在将PHP7.2.10与Laravel5.7.19一起使用 我的表单包含一个名为anthem的字段,表单以 web.php中的路径是: Route::post('storeCountryAnthemMPOnly/{id}), 'CountryController@storeCountryAnthemMPOnly') ->名称(“storeCountryAnthemMPOnly”); 我在控制器中的功能是: public
web.php
中的路径是:
Route::post('storeCountryAnthemMPOnly/{id}),
'CountryController@storeCountryAnthemMPOnly')
->名称(“storeCountryAnthemMPOnly”);
我在控制器中的功能是:
public function storeCountryAnthemMPOnly(请求$Request,$id)
{
dd(请求);
}
当我按下提交按钮时,我得到:
stream_socket_sendto():不允许发送或接收数据的请求,因为套接字未连接,并且(使用sendto调用在数据报套接字上发送时)未提供地址
我无法理解这一点,非常感谢您的帮助。文件无法上载到服务器,这不是laravel的错,而是您的服务器的错 我在同样的环境下也有同样的问题。问题是文件太大,所以无法上载到临时位置。虽然该文件没有上传到服务器,但laravel仍在尝试读取它,因此您会得到
“没有提供地址”
在我的例子中,文件无法上传,因为超过了大小限制,但在你的例子中,这可能是文件无法上传的另一个原因
我通过在php.ini
中更改大小和内存限制解决了这个问题
memory_limit = 32M
upload_max_filesize = 24M
post_max_size = 32M
除了大小限制之外,我还有一个建议:确保您对临时上传的文件夹拥有适当的权限
您还可以检查服务器日志。您在操作URL中使用了Form::model样式。将表单标记中的操作更改为
action="/storeCountryAnthemMPOnly/{{ $co->id }}"
您是否在表单中输入了最大文件大小?如果是这样,那么你必须增加它的价值。我也有同样的问题,可以通过将值增加到适当的值来解决。这是我最后穿的尺寸
<input type="hidden" name="MAX_FILE_SIZE" value="10485760">
我想拉威尔正在后台检查这个输入。你能试试
dd($request->all())
;我已经尝试过了,但是在它到达函数之前就停止了。同样的错误。它是否与文件上载一起工作,与普通字段一起工作?。你试过了吗?我试过另一个表单,它很好-那个表单只有普通字段。我确实注意到它正在上传到一个临时目录。你能打开浏览器的inspector面板,network选项卡并观察请求,哪个方法,动作,它发送什么吗?