为什么这个PHP工作,我得到未定义的索引......?

时间:2009-11-07 12:48:18

标签: php javascript html

我正在尝试将图片上传到服务器。

我有一个带有几个输入的表格...... 在这个表单中,我有一个包含另一个上传表单的iframe,这是因为我不希望原始表单提交()。

原始形式基本上是:

      <form> ...... bla bla bla alot of inputs....<iframe src="pic_upload.html"></iframe></form>

这是pic_upload.html:

      </head>
      <body><form name="pic_form" id="pic_form" action="bincgi/imageUpload.php" method="post" target="pic_target"><input name="pic_file" type="file" id="pic_file" size="35" onchange="this.form.submit();"></form><div id="pic_target" name="pic_target" style="width:80px; height:80px;"></div></body>
      </html>

这是imageUpload.php:

      <?php
      $destination_path = getcwd().DIRECTORY_SEPARATOR;
      //echo $destination_path;
      $result = 0;
      $target_path = $destination_path . basename($_FILES['pic_file']['name']);
      if(@move_uploaded_file($_FILES['pic_file']['tmp_name'], $target_path)) {
      $result = 1;
      }
      ?>

我收到此错误:未定义的索引:imageUpload.php第5行的pic_file

另外,如果我开始工作,有没有一种方法可以在表单目标中显示上传的图像?

非常感谢! PS:我会在标签上添加javascript,因为也许这就是我需要的东西!

3 个答案:

答案 0 :(得分:2)

不要忘记表单属性

enctype="multipart/form-data"

答案 1 :(得分:1)

表单必须像这样

<form enctype="multipart/form-data" action="__URL__" method="POST">

查看this PHP.net documentation了解详情。

答案 2 :(得分:0)

首先,您需要测试$_FILES是否包含密钥为pic_file的项目。因此,请使用isset函数执行此操作:

$destination_path = getcwd().DIRECTORY_SEPARATOR;
//echo $destination_path;
$result = 0;
if (isset($_FILES['pic_file'])) {
    $target_path = $destination_path . basename($_FILES['pic_file']['name']);
    if (@move_uploaded_file($_FILES['pic_file']['tmp_name'], $target_path)) {
        $result = 1;
    }
}