- Available elements
- Upload via an Upload edit control
- Uploading a file in a page
- Displaying the image to upload
- Maximum size of files to upload
Uploading consists in saving a file located on the user's computer to the Web server. The file found on the user's computer is "uploaded" to the server: it is loaded and saved on the server.
All types of files can be uploaded.
Examples for using the file upload:
- Phone Book site: when a new contact is added to the phone book, the user can select the contact photo on their computer. In order for the photo to be displayed independently of the Web user, the photo is "uploaded" to the server.
- Site for document management: each Web user can make different types of documents available to the other Web users: text, ... These documents are selected on the computer of the Web user and "uploaded" to the server in order to be made available to all the Web users.
The following elements are used to manage the file upload:
- an UPLOAD edit control: In the browser, a "BROWSE" button is automatically added to the right of the Upload edit control. This button allows the Web user to select the file to "upload".
A gray button is displayed in the editor. This button cannot be modified (style, caption, ...).
Caution: this edit control is a specific control: no Value properties should be used on this control. To get the name of the uploaded file, use UploadFileName. The upload mode with this type of control is presented in Upload via an edit control.
- an Upload control (single-file or multi-file): Several controls are automatically inserted into the editor as well as the WLanguage code required to use them immediately. This control can be generated for an execution based on Flash or on HTML5. For more details, see Upload control.
- two server functions of WLanguage:
|UploadCopyFile||Saves an "uploaded" file on the server. During this backup, the saved file can be renamed on the server.|
|UploadFileName||Returns the name of an "uploaded" file (initial file name or file name saved on server)|
- several WLanguage browser functions are used to handle the Upload control:
|UploadCurrentFile||Indicates the file currently uploaded via the Upload control.|
|UploadCurrentFileSize||Returns the total size (in bytes) of the file currently uploaded via an Upload control.|
|UploadCurrentFileSizeSent||Returns the size (in bytes) already sent for the file currently uploaded via an Upload control.|
|UploadDelete||Deletes a file from the list of files to upload: the file will not be uploaded on the server.|
|UploadDeleteAll||Clears the list of files to upload: no file will be uploaded on the server.|
|UploadSize||Returns the total size (in bytes) of the file currently uploaded via an Upload control.|
|UploadSizeSent||Returns the total size (in bytes) of files already sent by the current upload via an Upload control.|
|UploadStart||Starts sending the selected files into an Upload control.|
Upload via an Upload edit control
Uploading a file in a page
To upload a file in a page:
- Create an UPLOAD edit control (the type of the control is defined in the "General" tab of the control). This control allows the Web user to select the file to "upload".
- Add a Button control or a Link control. This control will be used to upload the file on the server. This Button or Link control must be of type "Submit" ("Button action" in the "General" tab of the control description window). When the page is validated using this control, the file is uploaded to a temporary directory on the server. Therefore, this file cannot be viewed by the other Web users.
- In the server click code of this Button or Link control, you can use:
- UploadFileName (UploadFileName(<Upload control>, False)) to check whether the file was uploaded and to retrieve its name. Indeed, during the upload, the file is renamed with a temporary file name.
- UploadCopyFile to copy and rename the uploaded file on the server. This file can be copied into the resource directory (_WEB) or into a directory accessible via an alias.
- HLinkMemo to load the image in a memo item of an HFSQL file.
: Using the file name directly on the browser computer (value read by the Value
property in server or browser code) in the file functions is a major mistake. Indeed, this operation operates in development mode (the server and the browser are found on the same computer) but NOT in deployment. In this case, the server and the browser are different computers. The server does not see the browser files. To get the names of the files to use, use UploadFileName
Displaying the image to upload
To display the image previously selected with an Upload edit control (EDT_UploadControl) in an Image control (IMG_ImageControl):
- In the code of the page, add the optional "OnMouseMove" browser code.
- Enter the following code lines in this code:
IF EDT_UploadControl <> "" THEN
IF IMG_ImageControl <> EDT_UploadControl THEN
IMG_ImageControl = EDT_UploadControl
: This operation may not operate depending on the browser used and on the security level.
Maximum size of files to upload
, the size of files to upload is not limited in the WEBDEV engine. This size can be limited:
- by the Web server used. For more details, see the documentation about the Web server used.
- by WEBDEV application server.
The file will not be uploaded if its size exceeds the limit size.
To modify the maximum size of files to upload in WEBDEV application server, the registry must be modified on the server. This modification can be performed for all the WEBDEV applications.
To modify the size of the uploaded files for all the WEBDEV applications:
- Select the following registry key:
- On a 64-bit computer: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PC SOFT\WEBDEV\28.0
- On a 32-bit computer: HKEY_LOCAL_MACHINE\SOFTWARE\PC SOFT\WEBDEV\28.0
- Add the MAX_UPLOAD key. The value of this key corresponds to the maximum size of files to upload (in KB).
For a large transfer (several hundreds of MB), we recommend that you use the FTP protocol instead of the upload. You have the ability to perform an FTP transfer from a WEBDEV page, via a Java applet created with WINDEV.
Limits in PHP
- The size of the uploaded files is limited by the "upload_max_filesize" and "post_max_size" directives in the configuration file of PHP (php.ini file).
- The file upload must be allowed by the PHP server. To do so, the "file_uploads" directive must be set to "on" in the configuration file of PHP (php.ini file).
- The upload_tmp_dir directive of the configuration file must be specified toward a directory with read/write rights.
Unit examples (WEBDEV): Uploading or Downloading a file