如何在同一页</form>上解决包含文件上传和其他文本输入的<form>

时间:2012-06-14 20:02:44

标签: php html forms testing upload

我的表格需要帮助。我想输入数据库的输入,文本区域和文件上传的混合..

我在使用什么?我是否使用普通表单属性:

  <form action="" method="">

<form enctype="" action="" method="">

请记住,我必须在一个页面中执行此操作,并且图片上传必须与其他文本输入一起完成。

感谢您的时间。

5 个答案:

答案 0 :(得分:16)

您必须使用enctype="multipart/form-data"进行文件上传,这也适用于非文件上传表单。

我通常会对所有表单使用此声明,无论它们是否有文件输入。

答案 1 :(得分:4)

您需要设置enctype="multipart/form-data"并对包含文件输入的任何表单使用method="post"。这不会阻止你包括其他类型的领域。

(这些字段提交给服务器的方式会发生变化,但是表单解析库会自动处理差异,如果你自己解析原始输入,只需要担心它们。)

答案 2 :(得分:4)

<form enctype="multipart/form-data" method="post" action="submit.php">

在这种情况下,

submit.php是处理表单的外部PHP脚本(如果您决定使用PHP)。但您可以根据自己的喜好命名.php脚本(例如 cats.php)。

上传的文件/图片数据将存储在$_FILES内,所有textfield,textarea,单选按钮,复选框和其他数据都将驻留在$_POST超全局内。

submit.php收到提交的表单时,您可以对其进行各种处理,例如验证用户是否已提交正确类型的文件/图像,将文件/图像的文件路径存储在本地数据库中(基于客户端/服务器或文件系统)等等。

确保验证用户输入客户端和服务器端。

答案 3 :(得分:3)

<form enctype="multipart/form-data" action="yourpage.php" method="post">

如果您希望文件上传起作用,则需要enctype属性。仅供参考,表格可以包含每种字段类型,包括文件上传,并且工作正常。

答案 4 :(得分:0)

在Classic ASP中,我必须以load.getFileData("textfield")的形式访问我的文本字段 使用enctype =&#34; multipart / form-data&#34;而不是标准Request("textfield")