首页 > 解决方案 > Laravel 大文件上传不起作用,我收到待处理的请求

问题描述

我正在尝试为我的应用程序上传视频文件,但请求一直处于挂起状态,有时它在终端中使用 php artisan serve 显示无效请求(无效 eof)。我在 php.ini 中更改了以下内容,仍然没有:

upload_max_filesize 2550M
post_max_size 50M
max_input_time 300
max_execution_time 300

更新#1

反应上传组件:

import React, {useState} from 'react';
import Button from "../../../Components/Button/Button";
import HttpClient from "../../../Services/HttpClient";

export default function () {
    const [file, setFile] = useState('');

    const onSubmit = async event => {
        event.preventDefault();
        console.log(file);

        const formData = new FormData();
        formData.append('video', file);

        await HttpClient().post('/api/stream/upload', formData);
    }

    const handleChange = event => {
        setFile(event.target.files[0]);
    }

    return (
        <section className='pa-1'>
            <form onSubmit={onSubmit}>
                <input type='file' onChange={handleChange}/>
                <Button className='btn--primary' type='submit'>Upload</Button>
            </form>
        </section>
    )
}

流控制器.php

    public function upload(Request $request) {
        ini_set('post_max_size','2024M');
        ini_set('upload_max_filesize','2024M');
        $path = $request->file('video')->store('uploads');
        $video = new Video();
        $video->filename = $path;
        $video->save();
        return true;
    }

有人有解决方案吗?它适用于小文件。

标签: phplaravel

解决方案


您可以将此行添加到您的函数中。然后它必须工作

 ini_set('post_max_size','2024M');
ini_set('upload_max_filesize','2024M');

推荐阅读