上传文件表单 - 无法识别$ _FILES变量

时间:2013-08-07 17:22:50

标签: php html

我有以下表格:

<form method="post" action="index.php">
    product name:
    <input type="text" name="product_name" value="<?php echo $product_name;?>"/>
    <br /> <br />
    product details
    <textarea rows = "6" cols = "30" name="product_details" > <?php echo $product_details;?></textarea>
    <br /> <br />
    product price
    <input type="text" name = "product_price" value="<?php echo $product_price;?>"/>
    <br /> <br />
    CN:
    <input type="text" name = "product_cn" value="<?php echo $product_cn;?>"/>
    <br /> <br />
    image
    <input type="file" name="fileField" />
    <br /> <br />

    <input type="submit" name="submit" value="register product" />
</form>

我的问题是,每当我尝试使用此代码处理图像时:

move_uploaded_file($_FILES['fileField']['tmp_name'], "../product_images/$newname");

我收到以下错误:

  

注意:未定义的索引:fileField

为什么?

提前致谢!

2 个答案:

答案 0 :(得分:5)

您必须将enctype='multipart/form-data'添加到表单
Quote from this topic about this

  

当您发出POST请求时,您必须以某种方式对构成请求正文的数据进行编码。

     

HTML表单提供了两种编码方法。默认是   application / x-www-form-urlencoded,它或多或少与a相同   URL末尾的查询字符串。另一个是multipart / form-data,是   一个更复杂的编码,但允许整个文件的编码   包含在数据中。

答案 1 :(得分:2)

enctype="multipart/form-data"

将该属性添加到表单标记

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

multipart / form-data不编码任何字符。该值是必需的   当您使用具有文件上载控件的表单时

http://www.w3schools.com/tags/att_form_enctype.asp