======================================== PHOTO UPLOAD - QUICK REFERENCE v3.4.2 ======================================== 🐛 PROBLEM: Photo upload fails with database error ✅ FIX (Choose One): OPTION 1 - Quick Fix (1 minute, keeps data): mysql -u root -p risk_assessment_db < database/photo_upload_fix.sql mkdir -p public/uploads/assessments && chmod 755 public/uploads/assessments OPTION 2 - Full Reimport (2 minutes, fresh start): mysql -u root -p < database/complete_schema.sql ======================================== VERIFICATION: bash verify_photo_upload.sh OR manually: mysql -u root -p risk_assessment_db -e "SHOW COLUMNS FROM assessment_risks LIKE 'photos';" ls -la public/uploads/assessments/ ======================================== WHAT WAS FIXED: 1. Added photos column to assessment_risks table 2. Fixed upload path: /uploads/ → /public/uploads/ 3. Created /public/uploads/assessments/ directory 4. Updated schema for new installations ======================================== FILE LOCATIONS: Photos: public/uploads/assessments/ Schema Fix: database/photo_upload_fix.sql Full Schema: database/complete_schema.sql Docs: PHOTO_UPLOAD_FIX.md ======================================== SUPPORTED FORMATS: ✓ JPEG/JPG ✓ PNG ✓ GIF ✓ WebP Max Size: 5MB Auto-resize: 2000x2000px Thumbnails: 300x300px ======================================== TROUBLESHOOTING: "Failed to update database" → mysql -u root -p risk_assessment_db < database/photo_upload_fix.sql "Permission denied" → chmod 755 public/uploads/assessments/ "Failed to process image" → php -m | grep gd → sudo apt-get install php-gd Photos don't display → Check ls -la public/uploads/assessments/ → Verify files accessible via browser ======================================== TESTING: 1. Login to system 2. Open/create assessment 3. Add risk item 4. Click "📷 Add Photo" 5. Upload image 6. Verify thumbnail appears 7. Click to view full size 8. Click × to delete ======================================== API ENDPOINTS: Upload: POST /public/api/upload-photo.php Delete: POST /public/api/delete-photo.php Both require authentication ======================================== DATABASE: Table: assessment_risks Column: photos (JSON) Format: ["file1.jpg", "file2.png"] ======================================== Version: 3.4.2 Status: Fixed & Tested Docs: PHOTO_UPLOAD_FIX.md ========================================