使用Laravel 4.2从表单中获取文件时遇到问题。我的表单声明如下:
{{ Form::open(array('url' => 'app/add-file', 'files' => true)) }}
{{ Form::file('file')}}
<button type="submit">Confirmer</button>
{{ Form::close() }}
我现在只尝试在控制器中显示结果。但阵列是空的。
return var_dump(Input::file());
当我在chrome中分析POST请求时,我看到标题中的内容类型是
内容类型:应用/ X WWW的窗体-urlencoded;字符集= UTF-8
也许是问题所在,但我的表单是用enctype
声明的的multipart / form-data的
有什么想法吗?
由于
答案 0 :(得分:1)
我发现了问题。我也使用jquery mobile并且存在问题。必须为表单禁用ajax,否则它不能处理文件。我做到了
{{ Form::open(array('url' => 'app/add-expense', 'files' => true, 'data-ajax' => 'false')) }}
答案 1 :(得分:0)
前几天我遇到同样的问题。我的文件上传工作正常,突然我的表单无法上传,我使用的是Laravel 4.1。。我想用composer安装一个包,它需要Laravel 4.2。所以我改变了版本以适应包。之后我的文件上传不再工作了。我更新以为laravel 4.2是问题,直到我将它上传到我的网络服务器并开始从Illuminate课程中获得特质问题。我的本地服务器运行的是PHP 5.5.11,Web服务器是5.3。
简而言之,Laravel 4.2。*工作文件为PHP 5.5。。不要快速跳转大多数托管服务器都没有在php 5.4上运行。。我降级到4.1。*。我没有改变任何东西,我的代码再次运行完美。
安装4.1版本,你会很完美。我的解决方案是将laravel 4.1安装到一个新文件夹并将所有代码移入其中。如果您使用4.2,User.php控制器具有该特征。所以你需要忘记移动User.php,4.1用户控制器是完美的。
安装laravel 4.1是另一个问题,所以我做了这个
composer create-project laravel/laravel:4.1.* project_name
它应该适合你,我想