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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

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

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

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

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

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

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

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

thedefaultapacheportforhttpis80.1.port80isubsUrunenCryptedhtttttttttttttttttttttandestAndardStandardForwebsErwesScludingApache.2

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

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

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