0

我有一个包含文件输入的表单:

 var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startImageUpload(this);' class='imageuploadform' ><label>" + 
    "Image File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label class='imagelbl'>" + 
    "<input type='submit' name='submitImageBtn' class='sbtn' value='Upload' /></label>" + +
    "</p> <iframe class='upload_target' name='upload_target' src='#' style='wclassth:0;height:0;border:0px;solclass #fff;'></iframe></form>");

这链接到上传文件的 php 脚本:

<?php

   $destination_path = str_replace("//", "/", $_SERVER['DOCUMENT_ROOT']."/")."ImageFiles";

   $result = 0;

   $target_path = $destination_path . basename( $_FILES['fileImage']['name']);

   if(move_uploaded_file($_FILES['fileImage']['tmp_name'], $target_path)) {
      $result = 1;
   }

   sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopImageUpload(<?php echo $result; ?>);</script>   

问题是,在 php 脚本中,它表明我有一个未定义的索引,无论它在 php 脚本中指出“fileImage”。但是我不知道为什么当我在“fileImage”形式的名称属性中提到时,它说我有未定义的索引。为什么说我在 php 脚本中有一个未定义的“fileImage”索引?

这是一个应用程序的链接,您可以在其中附加包含文件输入的行,您可以对此进行测试并自行查看是否愿意,但目前它一直说在上传过程中出现错误。应用

4

2 回答 2

1

导致此错误的根本原因可能有很多,但实际原因是$_FILES数组没有字符串索引'fileImage'

为了更好地查看哪些索引可用,您可以执行以下操作:

var_dump(array_keys($_FILES));

参见array_keysvar_dump

可能以下内容(在此问题中未记录的 javascript 代码)正在破坏您的表单或其数据中的某些内容:

onsubmit='startImageUpload(this);'
于 2012-04-11T12:27:36.757 回答
0

我以前遇到过同样的问题,这是因为我的 ajax/javascript 代码。作为测试,请尝试在不使用 javascript 的情况下发送您的表单。这样,您将知道问题的确切位置。如果错误消失,您的问题可能与 javascript 有关。

我从来没有真正找到使用 ajax 上传文件的正确解决方案。我通过将表单发送到 iframe 解决了这个问题,然后在完成加载后收集反馈。

我会在表单标签上做这样的事情:<form action="..." target="myframe">name="myframe"用and创建一个框架onload="getResults()" 这很模糊,但我希望它能给你一个想法。

使用时要小心,onload因为它会触发两次。当页面第一次加载完成时,以及表单完成提交时。

我希望我没有完全误解你的意思。

于 2012-04-11T15:01:35.290 回答