A desktop application that creates a local web server for transferring files wirelessly between your phone and computer in both directions.
- Bidirectional Transfer: Send files from phone to computer AND from computer to phone
- Desktop GUI: Clean tkinter interface for easy server management
- Local Web Server: Flask-based server accessible from any device on your network
- Mobile-Optimized: Responsive web interface designed for all phone sizes
- Real-time Progress: Upload progress bars with percentage, file size, and time estimates
- Multiple Upload Modes: Single file or multiple file uploads
- File Sharing: Add files from your computer to share with your phone
- Auto File Management: Automatic folder creation and file organization
- Network Discovery: Automatically detects and displays your network IP address
- No Redirects: AJAX-based uploads keep you on the same page
- Go to the Releases page
- Download the appropriate version for your system:
- Windows:
FileTransferApp-Windows.exe - Linux:
FileTransferApp-Linux - macOS:
FileTransferApp-macOS
- Windows:
- Run the executable (no installation required!)
Prerequisites:
- Python 3.6 or higher
- Flask library
Setup:
# Install Flask
pip install flask
# Run the application
python file_transfer_app.py- Launch the desktop application
- Click "
βΆοΈ Start Server" in the desktop interface - The app will display two URLs:
- Local:
http://localhost:8080(works only on your computer) - Network:
http://192.168.x.x:8080(use this on your phone)
- Local:
- Ensure your phone is connected to the same WiFi network as your computer
- Open your phone's web browser
- Navigate to the Network URL shown in the desktop app
- You should see the file transfer interface with two sections
Upload files from your phone to your computer.
Steps:
- On your phone, scroll to the "π€ Send to Computer" section
- Choose Single File or Multiple Files mode
- Select your files
- Tap "Upload File(s)"
- Files are saved to the
downloads/folder on your computer
Download files from your computer to your phone.
Steps:
- On your computer, click "π€ Add Files to Share"
- Select files you want to share with your phone
- On your phone, scroll to the "π₯ Get from Computer" section
- Tap "π Refresh File List" to see available files
- Tap "β¬οΈ Download" next to any file you want
During upload, you'll see:
- Visual progress bar with percentage
- Data transferred (e.g., "2.1 MB / 5.3 MB")
- Elapsed time
- Estimated time remaining
The app creates two folders in the same directory as the application:
your_project_folder/
βββ file_transfer_app.py (or .exe)
βββ downloads/ # Files received FROM your phone
β βββ photo1.jpg
β βββ document.pdf
β βββ video.mp4
βββ uploads/ # Files you share TO your phone
βββ presentation.pptx
βββ music.mp3
βββ ebook.pdf
- downloads/: Automatically receives files uploaded from your phone
- uploads/: Contains files you've selected to share with your phone
- Files maintain their original names
- If a file with the same name exists, it will be overwritten
- All transfers appear in the desktop app's activity log
- Check Network: Ensure both devices are on the same WiFi network
- Use Correct IP: Use the Network URL (192.168.x.x), not localhost
- Firewall: Allow Python/the app through your computer's firewall
- Router Settings: Some routers block device-to-device communication
- Click "Add Files to Share" on the desktop app first
- Tap "π Refresh File List" on your phone
- Make sure files were successfully copied to the
uploads/folder
The interface is optimized for older devices:
- Minimal JavaScript and CSS
- Large touch targets
- Simple HTML forms
- Sequential file uploads
- Responsive design that adapts to screen size
| Issue | Solution |
|---|---|
| "Connection refused" | Check if server is running and firewall allows connections |
| "Page not loading" | Verify you're using the Network IP, not localhost |
| "Upload fails" | Try smaller files first, check available disk space |
| "No files in download section" | Add files using "Add Files to Share" button on desktop |
| "Can't see uploaded files" | Check the downloads folder in the same directory as the app |
- Desktop: Windows 7+, macOS 10.12+, or Linux with Python 3.6+
- Mobile: Any device with a web browser
- Network: WiFi network connecting both devices
- Default port: 8080
- Customizable in the source code if needed
- Automatically finds available network interfaces
- All file types supported
- No file size restrictions (limited by available disk space and network speed)
- Multiple files can be uploaded simultaneously
- Local Network Only: The server only accepts connections from your local network
- No Authentication: Anyone on your network can access the interface
- No Encryption: Files are transferred over HTTP (not HTTPS)
- Temporary Server: Server stops when you close the desktop application
- Privacy: All transfers stay on your local network - nothing goes to the internet
build.batCreates release/FileTransferApp-Windows.exe
chmod +x build.sh
./build.shCreates release/FileTransferApp-Linux or FileTransferApp-macOS
- Python 3.6+
- PyInstaller (automatically installed by build scripts)
- Flask
file_transfer_app.py
βββ Flask Web Server
β βββ /upload (receive files from phone)
β βββ /list_files (list files to share)
β βββ /download/<filename> (send files to phone)
βββ Desktop GUI (tkinter)
β βββ Server controls
β βββ File sharing interface
β βββ Activity log
βββ File Management
βββ downloads/ folder handling
βββ uploads/ folder handling
You can modify:
- Upload/download directory paths
- Server port number
- Web interface styling
- File handling behavior
- Maximum file sizes
This project is open source. Feel free to modify and distribute as needed.
Found a bug or want to add a feature? Contributions are welcome:
- Fork the project
- Create a feature branch
- Make your changes
- Submit a pull request
For issues or questions:
- Check the troubleshooting section above
- Review the error messages in the desktop application
- Ensure all prerequisites are installed correctly
- Check that both devices are on the same WiFi network
Enjoy seamless bidirectional file transfers between your devices! π±








