提问人:user1324106 提问时间:4/11/2012 最后编辑:user1324106 更新时间:4/11/2012 访问量:657
我不断收到未定义的索引通知 [重复]
I keep getting an undefined index notice [duplicate]
问:
我有一个包含文件输入的表单:
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”的形式在name属性中提到时,它说我有未定义的索引。为什么说我在 php 脚本中有一个未定义的“fileImage”索引?
这是一个应用程序的链接,您可以在其中附加包含文件输入的行,您可以对此进行测试,如果您愿意,可以自己查看,但目前它一直说上传过程中出现错误。应用
答:
造成此错误的根本原因可能有很多,但实际原因是数组没有字符串索引。$_FILES
'fileImage'
为了更好地查看哪些索引可用,您可以执行以下操作:
var_dump(array_keys($_FILES));
可能以下(在这个问题中,未记录的 javascript 代码)正在破坏您的表单或其数据中的某些内容:
onsubmit='startImageUpload(this);'
评论
this
可以完全没事。我只是假设,因为从你的问题中不清楚,这可能完全相去甚远。正如您在问题下所评论的那样,我建议您现在开始分析浏览器和服务器之间的网络流量,因为不清楚您的“上传”请求会发生什么(显然它不再是上传请求,因此您需要提供更多信息,以便了解更多信息)。
我以前遇到过同样的问题,那是因为我的ajax / javascript代码。作为测试,请尝试发送不带 javascript 的表单。这样,您将知道问题的确切位置。如果错误消失,则问题可能出在javascript上。
我从来没有真正找到使用 ajax 上传文件的正确解决方案。我通过将表单发送到 iframe 中,然后在完成加载后收集反馈来解决这个问题。
我会在表单标签上做这样的事情:.
用 和 创建一个框架 这是模糊的,但我希望它确实能给你一个想法。<form action="..." target="myframe">
name="myframe"
onload="getResults()"
使用时要小心,因为它会触发两次,即第一次完成页面加载时,以及完成表单提交时。onload
我希望我没有完全误解你的观点。
评论
Array ( )