목차
획기적인 48MB 제한 : JS, PHP 및 Apache 비디오 슬라이싱 업로드 솔루션
문제 : 48MB 업로드 병목 현상
코드 분석 및 개선
솔루션 요약
백엔드 개발 PHP 튜토리얼 JS, PHP 및 Apache를 사용하여 비디오 타일을 업로드 할 때 48MB 이상의 파일을 업로드 할 수없는 문제를 해결하는 방법은 무엇입니까?

JS, PHP 및 Apache를 사용하여 비디오 타일을 업로드 할 때 48MB 이상의 파일을 업로드 할 수없는 문제를 해결하는 방법은 무엇입니까?

Apr 01, 2025 am 11:00 AM
apache 500 오류

JS, PHP 및 Apache를 사용하여 비디오 타일을 업로드 할 때 48MB 이상의 파일을 업로드 할 수없는 문제를 해결하는 방법은 무엇입니까?

획기적인 48MB 제한 : JS, PHP 및 Apache 비디오 슬라이싱 업로드 솔루션

소규모 프로젝트 개발에서 큰 파일 업로드를 처리하면 종종 문제가 발생합니다. 이 기사에서는 실질적인 사례를 공유합니다. JavaScript, PHP 및 Apache를 사용하여 비디오 슬라이싱을 업로드 할 때 48MB 파일 크기 제한을 극복하는 방법.

문제 : 48MB 업로드 병목 현상

이 프로젝트는 이론적으로 2GB 파일, 슬라이스 당 1MB 및 최대 2,000 조각을 지원하는 슬라이스 업로드 체계를 채택합니다. 그러나 실제 테스트에서 48MB 이상 (약 48 개)을 업로드 한 후 후속 요청은 500 개의 오류를 반환합니다. 슬라이스 크기가 10MB로 크기가 커지더라도 문제가 지속됩니다.

코드 분석 및 개선

자바 스크립트 코드 :

원래 코드에서 FormData 객체는 한 번만 초기화되어 각 요청이 업로드 된 모든 슬라이스 데이터를 전달하여 궁극적으로 Apache의 fcgidmaxrequestlen 한계를 초과했습니다.

개선 된 JavaScript 코드는 다음과 같습니다. 열쇠는 각 요청이 전송되기 전에 FormData 객체를 다시 추적하는 것입니다.

 함수 videofileupload () {
    const 길이 = 1024 * 1024; // 1MB
    시작 = 0;
    종료 = 시작 길이;
    blob_num = 1하자;
    IS_STOP = 0하자;

    this.start = function () {
        const file = files.files [0];
        const blob = cutfile (파일);
        sendfile (blob, file);
        blob_num;
    }

    // ... (나머지 코드는 동일하게 유지) ...

    함수 sendfile (blob, file) {
        if (is_stop === 0) {
            const xhr = new xmlhttprequest ();
            const form_data = new formdata (); // 키 : 매번 FormData Reinstand

            const total_blob_num = math.ceil (file.size / length);
            form_data.append ( 'file', blob);
            form_data.append ( 'blob_num', blob_num);
            form_data.append ( 'Total_blob_num', Total_blob_num);
            form_data.append ( 'file_name', file.name);

            xhr.open ( 'post', '/upload.php', false);
            // ... (나머지 코드는 동일하게 유지) ...
        }
    }

    // ... (나머지 코드는 동일하게 유지) ...
}

PHP 코드 :

PHP 코드의 파일 병합 로직에 메모리 효율 문제가있을 수 있습니다. 대형 파일의 경우 한 번에 모든 슬라이스를 메모리에 읽지 않도록 스트리밍이 권장됩니다. (원래 코드가 명백한 메모리 누출 또는 효율성 문제를 제공하지 않기 때문에 PHP 코드는 여기에서 생략됩니다. 개선의 초점은 JS 측에 있습니다)

솔루션 요약

문제의 핵심은 JavaScript 코드의 FormData 객체를 재사용하는 데 있습니다. 각 요청 전에 FormData 객체를 복원함으로써 데이터 축적을 피하기 때문에 48MB 업로드 제한을 해결합니다. PHP 측의 경우 큰 파일을 처리 할 때 메모리 문제가 발생하면 파일 병합 로직을 추가로 최적화하고 스트리밍 처리를 채택해야합니다. 이 개선 솔루션은 큰 파일 업로드의 문제를 효과적으로 해결하고 비디오 슬라이싱 업로드의 안정성과 안정성을 보장합니다.

위 내용은 JS, PHP 및 Apache를 사용하여 비디오 타일을 업로드 할 때 48MB 이상의 파일을 업로드 할 수없는 문제를 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Stock Market GPT

Stock Market GPT

더 현명한 결정을 위한 AI 기반 투자 연구

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

Apache에서 KeepAlive를 구성하는 방법은 무엇입니까? Apache에서 KeepAlive를 구성하는 방법은 무엇입니까? Aug 03, 2025 am 07:06 AM

KeepAliveon은 지속적인 연결을 가능하게합니다. 2. MAXKEEPALIVEREQUESTS100 연결 당 최대 요청 수를 설정합니다. 3. KEEPALIVETIMEOUT5 후속 요청을 기다리는 시간 초과를 설정하고 구성 후 Apache를 다시 시작하고 CURL 또는 브라우저 개발자 도구를 사용하여 KeepAlive가 서버 성능을 최적화하는 데 효과적인지 확인합니다.

Apache를 해결하는 방법은 libphp.so를 서버에로드 할 수 없습니다 Apache를 해결하는 방법은 libphp.so를 서버에로드 할 수 없습니다 Aug 08, 2025 am 06:07 AM

먼저, verifythelibphp.sofileExistsUsingFindorLocateCommands; ifmissing, reinstallphpwithPortviaPackagemanager.2.checkapacheConfigurationFilesForcorRectLoaddEctivePathandRemovedUplicates.3

Apache에 Let 's Encrypt SSL 인증서를 설치하는 방법은 무엇입니까? Apache에 Let 's Encrypt SSL 인증서를 설치하는 방법은 무엇입니까? Aug 04, 2025 am 09:47 AM

CertBot 및 Apache 플러그인을 설치하십시오. 2. 인증서를 얻고 도메인 이름을 구성하려면 certbot을 실행하십시오. 3. 선택적으로 HTTP에서 HTTP로 자동 리디렉션을 구성합니다. 4. 자동 갱신을 설정하고 건식 런 테스트를 통과합니다. 5. 설치를 확인하고 Apache의 일반 재 장전 구성을 확인하십시오. 인증서를 성공적으로 배포하면 갱신이 자동으로 관리됩니다. 전체 프로세스가 완료되면 보안 HTTPS 액세스를 달성 할 수 있습니다.

Apache 구성 파일은 어디에 있습니까? Apache 구성 파일은 어디에 있습니까? Aug 08, 2025 am 01:20 AM

Ondebian/Ubuntu, themainapacheconfigurationfileis/etc/apache2/apache2.conf, withadditionalconfigurationsin/etc/apache2/sites-av Ailable/및/etc/apache2/conf-available/.2.onrhel/centos/fedora, extrafilesin/h와 함께/httpd/conf/httpd.conf

기본 아파치 포트는 무엇입니까? 기본 아파치 포트는 무엇입니까? Aug 14, 2025 pm 01:02 PM

thedefaultapacheportforhttpis80.1.port80isubsUrunenCryptedhtttttttttttttttttttttandestAndardStandardForwebsErwesScludingApache.2

Apache에서 IP 주소를 차단하는 방법은 무엇입니까? Apache에서 IP 주소를 차단하는 방법은 무엇입니까? Aug 26, 2025 am 08:00 AM

Toblockanipinapache2.4, usetherequiredirectivewithinablock, awalsrequireallgrantedrequirenotip192.168.1.100toblockasingleip, asubnetlike192.168.1, ormultiplespecificipsbyrepeatingtherequirenoTipline, 2. placetherthertual, orblacthethertipirt

Windows 파일 관리자에서 파일 형식을 변환하는 방법은 무엇입니까? 효율적인 작동 단계 Windows 파일 관리자에서 파일 형식을 변환하는 방법은 무엇입니까? 효율적인 작동 단계 Sep 05, 2025 pm 08:12 PM

Windows 파일 관리자는 파일 관리를 담당하고 파일 내용을 처리하지 않기 때문에 파일 형식을 배치로 직접 변환 할 수 없습니다. IrfanView 및 FFMPEG와 같은 타사 도구를 사용하여 효율적인 배치 변환을 달성하고 파일 관리자와 결합하여 파일을 필터링하고 도구를 가져 오며 그래픽 인터페이스 또는 명령 줄을 통해 변환을 완료해야합니다. 명령 줄 도구는 자동화, 고효율 및 정확한 제어의 장점을 가지고 있지만 학습 비용, 오류 처리 및 파일 백업에주의를 기울여야합니다.

Apache에서 간단한 웹 사이트를 주최하는 방법은 무엇입니까? Apache에서 간단한 웹 사이트를 주최하는 방법은 무엇입니까? Sep 05, 2025 am 05:15 AM

installApacheusingpackagemanagercommandsforyouros, startAndEnableTheService.2.PlaceYOURWEBSITEFILESINTEFAULTDIRECTORY/var/www/html/, setProperownershipandPermissionsBasedOnyOUrSystem (www-dataforubuntu, apacheforcentos)

See all articles