


Comment résoudre le problème de ne pas pouvoir télécharger des fichiers au-dessus de 48 Mo lors du téléchargement des tuiles vidéo à l'aide de JS, PHP et Apache?
Apr 01, 2025 am 11:00 AMPercée 48 Mo Limite: JS, PHP et Apache Video Sinsicing Téléchargez des solutions
Dans le développement de petits projets, la gestion des téléchargements de fichiers importants rencontrent souvent des défis. Cet article partagera un cas pratique: comment surmonter la limite de taille de fichier de 48 Mo lors du téléchargement de découpage vidéo à l'aide de JavaScript, PHP et Apache.
Problème: 48 Mo Téléchargez un goulot d'étranglement
Le projet adopte un schéma de téléchargement de tranches, qui prend en charge théoriquement 2 Go de fichiers, 1 Mo par tranche et jusqu'à 2 000 pièces. Cependant, dans les tests réels, après avoir téléchargé plus de 48 Mo (environ 48 pièces), les demandes suivantes renvoient 500 erreurs. Même si la taille de la tranche est redimensionnée à 10 Mo, le problème persiste.
Analyse et amélioration du code
Code javascript:
Dans le code d'origine, FormData
n'a été initialisé qu'une seule fois, ce qui a entra?né chaque demande transportant toutes les données de tranche téléchargées, qui ont finalement dépassé la limite fcgidmaxrequestlen
d'Apache.
Le code JavaScript amélioré est le suivant. La clé consiste à réinstraster FormData
avant que chaque demande ne soit envoyée:
fonction videofileupload () { CONTr Length = 1024 * 1024; // 1 Mo LET START = 0; LET END = longueur de démarrage; Laissez BLOB_NUM = 1; SET IS_STOP = 0; this.start = function () { const file = files.files [0]; const blob = cutfile (fichier); sendFile (blob, fichier); BLOB_NUM; } // ... (le reste du code reste le même) ... fonction sendFile (blob, fichier) { if (is_stop === 0) { const xhr = new xmlHttpRequest (); const form_data = new formData (); // Clé: réinstallez FormData à chaque fois const total_blob_num = math.ceil (file.size / longueur); form_data.append ('fichier', 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); // ... (le reste du code reste le même) ... } } // ... (le reste du code reste le même) ... }
Code PHP:
La logique de fusion de fichiers dans le code PHP peut également avoir des problèmes d'efficacité de la mémoire. Pour les fichiers surdimensionnés, le streaming est recommandé pour éviter de lire toutes les tranches en mémoire à la fois. (Le code PHP est omis ici car le code d'origine ne fournit pas de fuites de mémoire ou d'efficacité évidentes, et l'objectif de l'amélioration est du c?té JS)
Résumé de la solution
Le c?ur du problème réside dans la réutilisation des objets FormData
dans le code JavaScript. En rétablissant l'objet FormData
avant chaque demande, l'accumulation de données est évitée, résolvant ainsi la limite de téléchargement de 48 Mo. Pour le c?té PHP, si des problèmes de mémoire se produisent lors du traitement des fichiers volumineux, vous devez optimiser davantage la logique de fusion de fichiers et adopter le traitement en streaming. Cette solution d'amélioration résout efficacement le problème des téléchargements de fichiers importants et garantit la stabilité et la fiabilité des téléchargements de découpage vidéo.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Préparation du logiciel J'utilise une machine virtuelle avec CentOS-6.6, avec le nom de nom d'h?te. Reportez-vous aux étapes pour installer une machine virtuelle Linux dans Windows, j'ai installé JDK dans cette machine virtuelle, reportez-vous au guide pour installer JDK dans Linux. De plus, la machine virtuelle est configurée avec une connexion sans clé elle-même, et les paramètres de configuration de connexion sans clé entre chaque machine virtuelle sont référencés. L'adresse de téléchargement du package d'installation de Hadoop est: https://mirrors.aliyun.com/apache/hadoop/common/. J'utilise la version Hadoop 2.6.5. Téléchargez le package d'installation de Hadoop sur le serveur et dézip [root @ repo ~] #tarzxv

Nginx et Apache sont tous deux des serveurs Web puissants, chacun avec des avantages et des inconvénients uniques en termes de performances, d'évolutivité et d'efficacité. 1) Nginx fonctionne bien lors de la gestion du contenu statique et de la proxyation inverse, adaptée aux scénarios de concurrence élevés. 2) Apache fonctionne mieux lors du traitement du contenu dynamique et convient aux projets qui nécessitent une prise en charge des modules riches. La sélection d'un serveur doit être déterminée en fonction des exigences et des scénarios du projet.

Nginx convient plus à la gestion des connexions simultanées élevées, tandis qu'Apache convient plus aux scénarios où des configurations complexes et des extensions de module sont nécessaires. 1.Nginx est connu pour ses performances élevées et sa faible consommation de ressources, et convient à une concurrence élevée. 2.Apache est connu pour sa stabilité et ses riches extensions de modules, qui conviennent aux besoins de configuration complexes.

Nginx et Apache ont chacun leurs propres avantages et inconvénients, et le choix doit être basé sur des besoins spécifiques. 1.Nginx convient aux scénarios de concurrence élevés en raison de son architecture asynchrone non bloquant. 2. Apache convient aux scénarios à faible monnaie qui nécessitent des configurations complexes, en raison de sa conception modulaire.

Les étapes pour déployer un site Web Joomla sur PHPStudy incluent: 1) Configurer PHPStudy, s'assurer que les services Apache et MySQL s'exécutent et vérifient la compatibilité de la version PHP; 2) Télécharger et décompresser le site Web de PHPStudy du site officiel de Joomla au répertoire racine de PHPStudy, puis compléter l'installation via le navigateur selon l'assistant d'installation; 3) Faire des configurations de base, telles que la définition du nom du site Web et l'ajout de contenu.

Le code PHP peut être exécuté de plusieurs manières: 1. Utilisez la ligne de commande pour entrer directement le "nom de fichier PHP" pour exécuter le script; 2. Mettez le fichier dans le répertoire racine du document et accédez-y via le navigateur via le serveur Web; 3. Exécutez-le dans l'IDE et utilisez l'outil de débogage intégré; 4. Utilisez le bac à sable PHP en ligne ou la plate-forme d'exécution de code pour les tests.

La mise à jour de la version Tomcat dans le système Debian comprend généralement le processus suivant: Avant d'effectuer l'opération de mise à jour, assurez-vous de faire une sauvegarde complète de l'environnement Tomcat existant. Cela couvre le dossier / opt / tomcat et ses documents de configuration connexes, tels que server.xml, context.xml et web.xml. La tache de sauvegarde peut être terminée via la commande suivante: sudocp-r / opt / tomcat / opt / tomcat_backup Obtenez la nouvelle version Tomcat allez sur le site officiel d'apachetomcat pour télécharger la dernière version. Selon votre système Debian

Cause que les performances du système ne se rétablissent pas après la désinstallation du service Apache peuvent inclure l'occupation des ressources par d'autres services, les messages d'erreur dans les fichiers journaux, la consommation de ressources par des processus anormaux, des problèmes de connexion réseau et des résidus de système de fichiers. Tout d'abord, vérifiez s'il existe d'autres services ou processus avant de désinstaller avec Apache; Deuxièmement, faites attention aux fichiers journaux du système d'exploitation et recherchez des messages d'erreur qui peuvent se produire pendant le processus de désinstallation; Deuxièmement, vérifiez l'utilisation de la mémoire du système et la charge du processeur et découvrez des processus anormaux; Ensuite, utilisez la commande netstat ou ss pour afficher l'état de la connexion réseau pour vous assurer qu'aucun port n'est occupé par d'autres services; Enfin, nettoyez les fichiers de configuration et les fichiers journaux restants après une désinstallation pour éviter d'occuper l'espace disque.
