繁体   English   中英

通过html表单上传文件。 在PHP中,$ _ FILES为空

[英]Uploading file via html form. In PHP, $_FILES is empty

所以我有这段代码:

<form name="form" action="./" method="post">
<input type="file" name="newfile" id="newfile" />
</form>

当我在操作页面上运行此php脚本时,没有任何反应

echo "$_FILES['newfile']['name'];
print_r($_FILES);

就像$_FILES变量为空。 有没有什么办法解决这一问题?

您需要在enctype="multipart/form-data"上设置enctype="multipart/form-data"属性。

来自php.net的示例1

<!-- 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>

如果您未指定<form … enctype="multipart/form-data">那么数据将以不支持文件的方式进行编码。

用该值添加属性。

根据HTML规范

enctype =内容类型[CI]

此属性指定用于向服务器提交表单的内容类型(当method的值为“ post”时)。 此属性的默认值为“ application / x-www-form-urlencoded”。 值“ multipart / form-data”应与INPUT元素type =“ file”结合使用。

PHP手册

<!-- The data encoding type, enctype, MUST be specified as below -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
echo "$_FILES['newfile']['name'];

那是语法错误。 应该

echo $_FILES['newfile']['name']; 

要么

echo "{$_FILES['newfile']['name']}";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM