我在自己的服务器上有一个带Laravel的应用程序。我已经构建了一个带有输入文件上传的页面,我的服务器配置为接受1MB的最大文件大小。当我将请求发送到我的控制器时,即使文件低于或大于1MB,上传也会启动并返回OK 200
状态。
我已使用以下设置配置php.ini
:
; Maximum allowed size for uploaded files.
; http://php.net/upload-max-filesize
upload_max_filesize = 1M
; Maximum size of POST data that PHP will accept.
; Its value may be 0 to disable the limit. It is ignored if POST data reading
; is disabled through enable_post_data_reading.
; http://php.net/post-max-size
post_max_size = 500M
如果文件大于500MB或所有上传的文件都大于500MB,由于我的PostTooLargeException
配置,我得到post_max_size
。我不知道为什么我从post_max_size
而不是upload_max_filesize
获得例外。另外,如果这与Laravel或我的PHP有关,我不会这样做,但是我已经在upload_max_filesize
配置中测试了多个值,每次我应用新配置时仍然无法正常工作时重新启动HTTPD服务守护程序
我找不到任何有关它引用Laravel错误/错误甚至PHP错误/错误的信息。
phpinfo()
来电正确显示信息,但无效。我的示例代码如下:
<html>
<body>
...
<div class="col-sm-8 col-xs-12">
<div>
<input type="file" id="file-upload" name="file-upload" />
</div>
<div class="col-sm-4 col-xs-12">
<div>
<button type="button" class="btn btn-success" data-toggle="fileUpload">Upload</button>
</div>
</div>
...
<script>
$('*[data-toggle="fileUpload"]').on('click', function() {
var file = $('#file-upload[name="file-upload"]').prop('files')[0];
var formData = new FormData();
formData.append('file', file);
formData.append('_token', $('meta[name="csrf-token"]').attr('content'));
$.ajax({
url: '/upload',
method: 'POST',
dataType: 'json',
contentType: false,
processData: false,
cache: false,
data: formData,
success: function(data, jqXHR, status) {
console.log(data);
},
error: function(jqXHR, status, error) {
console.log(error);
},
});
});
</script>
</body>
</html>
服务器端控制器代码什么都没有,只有return true;
如果您需要任何进一步的信息,请与我们联系。
当前设置:Laravel 5.4,PHP 7.0
祝你好运, d。