Skip to main content

Local Wi‑Fi QR file transfer

Project description

QRPorter App Icon

PyPI - Version PyPI - Python Version License: MIT Status Flask PySide6 File Transfer QR Code

QRPorter — Local Wi‑Fi QR File Transfer

A lightweight desktop + web utility for moving files between a mobile device and a Desktop PC over the local network. Scan a QR code to send or receive files directly on the LAN—no cloud, no cables, no mobile app and no accounts.


Why QRPorter

  • Simple: one‑click “Send to mobile” or “Get from mobile” for quick transfers.
  • Private: traffic stays on the local network; nothing is uploaded to third‑party servers.
  • Cross‑device: works with modern mobile browsers (iOS/Android) and Windows, Linux & MacOS desktop.

Features

  • PC → Mobile: Select the file & generate a QR code; scan to download the selected file on your mobile.
  • Mobile → PC: Generate the QR code, visit the upload page from the QR on mobile; send a file back to the PC.
  • One‑time session tokens and basic rate limiting for local safety.
  • Send/Receive multiple files at once.

Screenshots

QRPorter
QRPorter_download_from_pc
QRPorter_Upload_to_pc


Installation

You can install QRPorter directly from PyPI:

pip install qrporter

Requirements Python 3.12+ Works on Windows, macOS, and Linux

Running the App After installation, you can start QRPorter from the terminal:

qrporter

Requirements

  • Windows 11 (tested), Linux, MacOS
  • Python 3.12+ with pip
  • Same Wi‑Fi/LAN for both PC and phone

Required Python packages (minimum versions):

  • Flask>=3.1.2
  • PySide6>=6.6.1
  • qrcode>=8.2
  • Werkzeug>=3.1.3
  • Pillow>=11.0.0
  • platformdirs>=4.0.0

Setup on Windows 11

  1. Install Python
  • Download and install Python 3.12+ (ensure “Add Python to PATH” is checked).
  • Verify:
python --version
pip --version
  1. Clone the repository
git clone https://github.com/manikandancode/qrporter.git
cd qrporter
  1. Create and activate a virtual environment
python -m venv venv
venv\Scripts\activate
  1. Install dependencies
  • If you have a requirements.txt:
    pip install -r requirements.txt
    
  • Or install individually with minimum versions:
    pip install "Flask>=3.1.2" "PySide6>=6.6.1" "qrcode>=8.2" "Werkzeug>=3.1.3" "Pillow>=11.0.0" "platformdirs>=4.0.0"
    
  1. Run the desktop app
  • If the project provides a launcher:
    python run.py
    

How to Use

  • Send file to mobile (PC → Mobile):
  1. Click “Send file to mobile.”
  2. Pick a file (or multiple); a QR code appears.
  3. Scan the QR with the phone camera/browser to download.
  • Get file from mobile (Mobile → PC):
  1. Click “Get file from mobile.”
  2. Scan the QR displayed on the phone.
  3. Choose a file (or multiple) on the phone and upload it; the PC saves it locally.

Default folders (auto‑created):

  • Outgoing: shared/
  • Incoming: received/

Use the “Open Outgoing/Incoming Folder” buttons in the UI to open these locations.


Tips & Troubleshooting

  1. Phone can’t open the link:
  • Ensure PC and phone are on the same Wi‑Fi; avoid guest/isolated networks.
  • Allow Python in Windows Defender Firewall for Private networks.
  1. Very slow uploads:
  • Keep the phone screen on and the browser in the foreground (backgrounding throttles).
  • Prefer 5 GHz Wi‑Fi and short distance to the access point.
  • Save to an SSD when possible.
  1. URL shows a tuple like ('192.168.x.x', 52546):
  • Ensure the app uses only getsockname()[0] (IP string) when forming URLs and restart the app.
  1. File size limit:
  • 1GG per transper.

Project Rationale

QRPorter focuses on frictionless, local‑only transfers for everyday workflows—moving screenshots, media, or documents between PC and phone—without cloud services, cables, drivers, or mobile app installs on mobile.


License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qrporter-3.0.0.tar.gz (204.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

qrporter-3.0.0-py3-none-any.whl (203.9 kB view details)

Uploaded Python 3

File details

Details for the file qrporter-3.0.0.tar.gz.

File metadata

  • Download URL: qrporter-3.0.0.tar.gz
  • Upload date:
  • Size: 204.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for qrporter-3.0.0.tar.gz
Algorithm Hash digest
SHA256 9c6c60c7f0752aca6cff55611f339ec2017300bcc2ca3fb2255912c0ca04c95f
MD5 3e1adca3d4f3085b0d12291c8d3ec457
BLAKE2b-256 dc9ceff3200a6ce2de68b4118c7a7f0dbb21965f486ae28d4ac0276c0046d08e

See more details on using hashes here.

File details

Details for the file qrporter-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: qrporter-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 203.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for qrporter-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4b3345ac3b5644ddfc808c431ead29917feb0e80c66ae43c92e6af00e7ed6cab
MD5 7616904134ae7fd04c5b0da76ca82952
BLAKE2b-256 dedb275c94c2af4ffbbe73d54e09ced84ada6b4d1fa1a4501e155c835f73f85f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page