So I have this code:
<form name="form" action="./" method="post">
<input type="file" name="newfile" id="newfile" />
</form>
When I run this php script on the action page, nothing happens
echo "$_FILES['newfile']['name'];
print_r($_FILES);
It is like the $_FILES
variable is empty. Is there any way to fix this?
You need to set the enctype="multipart/form-data"
attribute on your form.
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
<!-- MAX_FILE_SIZE must precede the file input field -->
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<!-- Name of input element determines name in $_FILES array -->
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
If you don't specify <form … enctype="multipart/form-data">
then the data will be encoded in a way that doesn't support files.
Add the attribute with that value.
From the HTML specification :
enctype = content-type [CI]
This attribute specifies the content type used to submit the form to the server (when the value of method is "post"). The default value for this attribute is "application/x-www-form-urlencoded". The value "multipart/form-data" should be used in combination with the INPUT element, type="file".
From the PHP manual :
<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
echo "$_FILES['newfile']['name'];
That's a syntax error. Should be
echo $_FILES['newfile']['name'];
or
echo "{$_FILES['newfile']['name']}";
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.