Improve video upload functionality and add diagnostics for Android

Expand accepted video file types and implement debugging logs for camera captures on Android to address upload issues.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: ae4037a0-2a6f-4530-9bac-79b543286bda
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Event-Id: 768a5377-a884-497c-93f6-6ce6c925d1d2
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/397bca8c-984f-43ff-841a-10897aeb8140/ae4037a0-2a6f-4530-9bac-79b543286bda/cOs6ffF
This commit is contained in:
michaelschal committed 2025-10-31 15:03:40 +00:00
1 parent 4b355f63ac
commit 7f031904dd
2 files changed
+47 -4

No files matched your search

+24 -2
View File
@@ -95,8 +95,8 @@ export default function MediaUpload() {
const { getRootProps, getInputProps, isDragActive, open } = useDropzone({
onDrop,
accept: {
"image/*": [".png", ".jpg", ".jpeg", ".gif"],
"video/*": [".mp4", ".mov"],
"image/*": [".png", ".jpg", ".jpeg", ".gif", ".webp"],
"video/*": [".mp4", ".mov", ".webm", ".3gp", ".3gpp", ".mkv", ".avi"],
},
maxSize: 52428800,
multiple: true,
@@ -115,13 +115,35 @@ export default function MediaUpload() {
const handleCameraCapture = (e: React.ChangeEvent<HTMLInputElement>) => {
const file = e.target.files?.[0];
if (file) {
// Logs de diagnostic pour Android
console.log('📹 Capture camera détectée:', {
nom: file.name,
type: file.type,
taille: `${(file.size / 1024 / 1024).toFixed(2)} MB`,
estVideo: file.type.startsWith('video/')
});
// Correction Android : créer un nom valide si le fichier n'a pas de nom
let fileToUpload = file;
if (!file.name || file.name === 'blob' || file.name === '') {
const extension = file.type.split('/')[1] || 'jpg';
const newFileName = `camera-${Date.now()}.${extension}`;
fileToUpload = new File([file], newFileName, { type: file.type });
console.log('✅ Nom de fichier corrigé:', newFileName);
}
// Vérification taille (50 MB max)
if (file.size > 52428800) {
toast({
title: "Fichier trop volumineux",
description: `La taille maximale est de 50 MB. Votre fichier fait ${(file.size / 1024 / 1024).toFixed(2)} MB`,
variant: "destructive",
});
console.error('❌ Fichier rejeté: trop volumineux');
e.target.value = '';
return;
}
uploadMutation.mutate(fileToUpload);
// Réinitialiser l'input pour permettre de capturer la même photo à nouveau
e.target.value = '';
+23 -2
View File
@@ -180,8 +180,8 @@ export default function NewPost() {
const { getRootProps, getInputProps, isDragActive, open } = useDropzone({
onDrop,
accept: {
"image/*": [".png", ".jpg", ".jpeg", ".gif"],
"video/*": [".mp4", ".mov"],
"image/*": [".png", ".jpg", ".jpeg", ".gif", ".webp"],
"video/*": [".mp4", ".mov", ".webm", ".3gp", ".3gpp", ".mkv", ".avi"],
},
maxSize: 52428800,
noClick: true,
@@ -299,13 +299,34 @@ export default function NewPost() {
const handleCameraCapture = (e: React.ChangeEvent<HTMLInputElement>) => {
const file = e.target.files?.[0];
if (file) {
// Logs de diagnostic pour Android
console.log('📹 Capture camera détectée:', {
nom: file.name,
type: file.type,
taille: `${(file.size / 1024 / 1024).toFixed(2)} MB`,
estVideo: file.type.startsWith('video/')
});
// Correction Android : créer un nom valide si le fichier n'a pas de nom
let fileToUpload = file;
if (!file.name || file.name === 'blob' || file.name === '') {
const extension = file.type.split('/')[1] || 'jpg';
const newFileName = `camera-${Date.now()}.${extension}`;
fileToUpload = new File([file], newFileName, { type: file.type });
console.log('✅ Nom de fichier corrigé:', newFileName);
}
// Vérification taille (50 MB max)
if (file.size > 52428800) {
toast({
title: "Fichier trop volumineux",
description: `La taille maximale est de 50 MB. Votre fichier fait ${(file.size / 1024 / 1024).toFixed(2)} MB`,
variant: "destructive",
});
console.error('❌ Fichier rejeté: trop volumineux');
return;
}
uploadMutation.mutate(fileToUpload);
}
};