mirror of
https://github.com/R0m1k3/Socialflow.git
synced 2026-10-11 17:26:45 +02:00
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:
1 parent
4b355f63ac
commit
7f031904dd
2 files changed
+47
-4
No files matched your search
@@ -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 = '';
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user