=== EdgeUpload - Direct Cloud Upload for Forms ===
Contributors: liuxiong, freemius
Tags: amazon s3, direct upload, form upload, object storage, cloud upload
Requires at least: 5.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Upload files directly to cloud storage from Contact Form 7, WPForms, Elementor Forms, Gravity Forms, Ninja Forms, Fluent Forms. Bypass server uploads

== Description ==

EdgeUpload turns supported WordPress form file fields into browser-to-cloud upload fields. Instead of pushing large file payloads through the WordPress server, EdgeUpload asks WordPress for a short-lived upload signature, sends the file directly from the visitor's browser to your object storage bucket, and passes the final cloud URL along with the form submission.

This keeps your forms familiar while moving file traffic away from PHP upload limits, server disk storage, and oversized form requests.

The free version includes Amazon S3 support. EdgeUpload Pro adds more storage providers, CDN URL rewriting, and advanced upload controls for production workflows.

= Why use direct cloud uploads? =

* Reduce file upload load on your WordPress hosting.
* Keep submitted files in your own cloud storage bucket.
* Avoid storing temporary form uploads on the WordPress server.
* Submit cloud file URLs with form entries instead of bulky local uploads.
* Use one upload workflow across popular WordPress form plugins.

= Supported form plugins =

* Elementor Forms
* Contact Form 7
* WPForms
* Gravity Forms
* Ninja Forms
* Fluent Forms

= Free features =

* Browser-to-cloud direct uploads for supported frontend form file fields.
* Amazon S3 storage provider.
* WordPress-generated signed upload authorization.
* File URL submission with the original form entry.
* Basic upload limits suitable for small forms.
* Optional form ID targeting.
* Admin connection test and browser CORS upload test.

= Pro features =

* Tencent Cloud COS provider.
* Alibaba Cloud OSS provider.
* Azure Blob Storage provider.
* Google Cloud Storage provider.
* Optional CDN domain for submitted file URLs.
* Adjustable max files per upload.
* Adjustable max file size and total upload size.
* Adjustable retry count.
* Custom allowed file extensions.

= Typical use cases =

* Contact forms that collect documents or screenshots.
* Quote request forms with attachments.
* Job application forms with resumes and portfolios.
* Support forms that accept diagnostic files.
* Membership, onboarding, and intake forms that need cloud-hosted uploads.

= Important setup note =

EdgeUpload requires a correctly configured cloud storage bucket. Your bucket must allow browser uploads from your WordPress site origin, and submitted file URLs must be readable by the people who need to access them. The plugin includes connection and CORS tests to help verify your configuration.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/edgeupload` directory, or install the plugin through the WordPress Plugins screen.
2. Activate the plugin through the Plugins screen in WordPress.
3. Open EdgeUpload from the WordPress admin menu.
4. Select a storage provider and enter your bucket credentials.
5. Save the settings, then run the connection test.
6. Configure CORS on your storage bucket so visitors can upload files directly from your site.
7. Add or update a supported form with a file field.

== Frequently Asked Questions ==

= Does EdgeUpload store uploaded files on my WordPress server? =

No. EdgeUpload uploads files directly from the visitor's browser to your configured cloud storage bucket. The form submission receives the resulting cloud file URL.

= Which provider is available in the free version? =

The free version supports Amazon S3.

= Which providers are available in Pro? =

EdgeUpload Pro supports Tencent Cloud COS, Alibaba Cloud OSS, Azure Blob Storage, and Google Cloud Storage in addition to Amazon S3.

= Do I need to configure CORS? =

Yes. Your cloud storage bucket must allow browser uploads from your WordPress site origin. EdgeUpload includes a CORS test to help verify the configuration.

= Does EdgeUpload replace my form plugin? =

No. EdgeUpload works alongside supported form plugins. It focuses on the file upload flow while your form plugin continues to handle form layout, validation, notifications, and entries.

= Can I limit EdgeUpload to specific forms? =

Yes. You can optionally target specific form IDs. If left empty, EdgeUpload can handle supported file fields across the supported form plugins.

= Do submitted file URLs require public access? =

The submitted URLs must be accessible to the people who need to open them. You can use the storage bucket URL directly or configure a CDN domain in EdgeUpload Pro. Bucket permissions and CDN mapping are managed in your cloud provider account.

== Screenshots ==

1. Settings page: choose your object storage provider, enter bucket credentials, and run the connection test. Supported form plugins are listed at the top.
2. Settings page: optional CDN domain, form ID targeting, upload limits, allowed file extensions, and signing rate limit.

== External services ==

EdgeUpload connects to the object storage service that you configure. No data is sent anywhere until you enter your own bucket credentials and a visitor uploads a file through a supported form.

**Amazon S3 (free version)**

* What it is used for: storing the files that visitors upload through your forms.
* What data is sent: the file itself is sent from the visitor's browser directly to your S3 bucket using a short-lived signed URL generated by your WordPress site. The connection test in the admin area sends a small test object to your bucket.
* When: when a visitor uploads a file in a supported form, and when an administrator runs the connection or CORS test.
* Service provider: Amazon Web Services, Inc. [Terms of Service](https://aws.amazon.com/service-terms/) | [Privacy Notice](https://aws.amazon.com/privacy/)

EdgeUpload Pro additionally supports Tencent Cloud COS, Alibaba Cloud OSS, Microsoft Azure Blob Storage and Google Cloud Storage. They work the same way and are only contacted if you select them.

**Freemius**

This plugin uses the Freemius SDK for licensing, optional opt-in usage data and updates. Data is only collected after you opt in. See the [Freemius Privacy Policy](https://freemius.com/privacy/).

== Changelog ==

= 1.0.1 =

* Initial public release.
