Skip to content

Forms#

Web forms are a common way how to interact with a client using PHP. We wanted to move the form handling to a client side. So, web forms generated from PHP scripts are now handled on a client side without knowing about additional configuration. You just specify a request method and handling script. Superglobals $_GET and $_POST work as you expect.

The example of using web forms can be found in https://github.com/peachpiecompiler/peachpie-blazor/tree/master/src/Tests/Examples/OneScript

When you generate a web form from a PHP script, PhpScriptProvider turns the form handling to a client side, where the provider finds the handling script of the form.

More information about the API can be found in [https://docs.peachpie.io/scenarios/blazor/api-reference/.

Files#

Loading and downloading files are possible as well. However, we need specialized functions to manage it.

The example of using web forms can be found in https://github.com/peachpiecompiler/peachpie-blazor/tree/master/src/Tests/Examples/OneScript

Uploading file#

When a client uploads a file to the webform and sends it, we can get information about sent files in superglobal $_FILES. When you want to read a file content, you have to use GetBrowserFileContent($fileId), which returns Base64 encoded content of the file by the given id. This id has every object returned from $_FILES.

Creating file#

Because of the browser environment, you have to use the specialized function for creating a file. CreateFile(string $data, $contentType, $name) will create a browser representation of the file with given data, type, and name.

Downloading file#

Then you can download an already existing file by DownloadFile($fileId), which finds the file in the memory and start to download it to a client PC.

You can see an example of creating a CSV file and downloading it to a client below.

<?php

$file = CreateFile('Hello, world',"text/csv", "graph.csv");
DownloadFile($file->id);