Hallo zusammen,
heute möchte ich euch mein neuestes Projekt vorstellen: Datentausch, eine einfache und sichere Plattform zum Teilen von Dateien, die nach drei Tagen automatisch gelöscht werden. Mit PHP, MySQL und einer Prise JavaScript habe ich eine Lösung gebaut, die es erlaubt, Dateien bis zu 100 MB ohne Registrierung hochzuladen und über sichere Download-Links zu teilen. Das Beste? Es ist kostenlos und unterstützt eine Vielzahl von Dateitypen!
Wie funktioniert’s?
Datentausch ist darauf ausgelegt, maximal benutzerfreundlich zu sein. Hier ist, was hinter den Kulissen passiert, wenn du eine Datei hochlädst:
- Upload: Du wählst eine oder mehrere Dateien aus (z. B. JPG, PDF, ZIP), akzeptierst die Nutzungsbedingungen, und die Dateien werden in den Ordner
daten/
hochgeladen. - Speicherung: Jede Datei erhält einen eindeutigen Schlüssel (32-stelliger MD5-Hash) und wird in einer MySQL-Datenbank registriert mit Metadaten wie Dateiname, Größe und Upload-Datum.
- Download-Links: Nach dem Upload bekommst du einen oder mehrere Links (z. B.
download.php?key=abc123
), die du teilen kannst. Downloads erfordern eine Bestätigung, um die Sicherheit zu erhöhen. - Automatische Löschung: Dateien und ihre Metadaten werden nach drei Tagen automatisch gelöscht, sowohl aus dem Dateisystem als auch aus der Datenbank.
Die Plattform prüft, ob die Dateiendung erlaubt ist (siehe dateitypen.txt
) und ob die Dateigröße 100 MB nicht überschreitet. Ein Beispiel für einen Download-Link:
http://goldau.online/projekte/datentausch/download.php?key=1a2b3c4d5e6f7890abcdef1234567890
Warum dieser Ansatz?
Ich wollte eine Plattform schaffen, die einfach, sicher und datenschutzfreundlich ist. Deshalb:
- Keine Registrierung: Niemand muss sich anmelden oder persönliche Daten angeben, was den Datenschutz stärkt.
- 3-Tage-Limit: Dateien verschwinden automatisch, um Speicherplatz zu sparen und die Privatsphäre zu schützen.
- Eingeschränkte Dateitypen: Die Liste in
dateitypen.txt
(z. B. jpg, pdf, zip) verhindert den Upload potenziell gefährlicher Dateien. - Web Share API: Für moderne Browser habe ich die Web Share API integriert, um Links direkt zu teilen (siehe
success.php
).
Die Plattform verwendet PDO für sichere Datenbankabfragen und schützt vor SQL-Injection, während die Dateinamen verschlüsselt werden, um Konflikte zu vermeiden.
Was habe ich gelernt?
Dieses Projekt war eine großartige Übung in Webentwicklung und Servermanagement. Einige Erkenntnisse:
- File-Handling in PHP: Der Umgang mit
$_FILES
, Datei-Validierung und das Verschieben von Dateien war eine Herausforderung, besonders bei Mehrfach-Uploads. - Datenbankdesign: Die
files
-Tabelle speichert Metadaten effizient, und diestatistics
-Tabelle verfolgt Uploads und Downloads. - Sicherheit: Ich habe gelernt, Eingaben zu validieren (z. B. Dateitypen, Schlüssel), CSRF-Schutz zu implementieren und die Admin-Seite mit einem Passwort zu sichern.
- Benutzerfreundlichkeit: Die Integration eines Fortschrittsbalkens und der Web Share API hat die Nutzererfahrung deutlich verbessert.
Wie kann man es nutzen?
Datentausch ist kinderleicht zu bedienen. Besuche einfach die Startseite, lade eine Datei hoch und teile den generierten Link.
Ausblick
Datentausch ist schon jetzt nützlich, aber es gibt Raum für Verbesserungen:
- Benachrichtigungen: E-Mail-Benachrichtigungen für erfolgreiche Uploads oder Downloads.
- Dateivorschau: Vorschau für Bilder oder PDFs direkt im Browser.
- Erweiterte Sicherheit: Virenscans für hochgeladene Dateien oder Zwei-Faktor-Authentifizierung für die Admin-Seite.
- Mehrsprachigkeit: Unterstützung für Englisch oder andere Sprachen, um die Plattform internationaler zu machen.
Was denkt ihr über Datentausch? Habt ihr Vorschläge oder Ideen, wie ich die Plattform noch besser machen kann? Hinterlasst mir eure Gedanken in den Kommentaren! Wenn ihr Lust habt, die Plattform auszuprobieren, besucht sie unter .