Php 为什么每次都要附加数字0和1
我试图在变量imagename后面附加一个数字,但它没有显示文件名,而是先附加数字“0”,然后再附加数字“1”。我想知道为什么它会附加这些数字而不是文件名?imagename变量循环遍历imageNameArray变量,该变量包含一个$\u会话变量,用于检索已上载文件的名称,该$\u会话变量从上载文件的php脚本中检索 下面是发生追加的javascript代码:Php 为什么每次都要附加数字0和1,php,javascript,json,Php,Javascript,Json,我试图在变量imagename后面附加一个数字,但它没有显示文件名,而是先附加数字“0”,然后再附加数字“1”。我想知道为什么它会附加这些数字而不是文件名?imagename变量循环遍历imageNameArray变量,该变量包含一个$\u会话变量,用于检索已上载文件的名称,该$\u会话变量从上载文件的php脚本中检索 下面是发生追加的javascript代码: function stopImageUpload(success){ var imageNameArray = <?php
function stopImageUpload(success){
var imageNameArray = <?php echo json_encode(isset($_SESSION ['fileImage']) ? $_SESSION ['fileImage'] : null); ?>;
var result = '';
if (success == 1){
result = '<span class="msg">The file was uploaded successfully!</span><br/><br/>';
for (imagename in imageNameArray)
{
$('.listImage').append(imageNameArray[imagename]+ '<br/>');
}
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
函数stopImageUpload(成功){
var imageNameArray=;
var结果=“”;
如果(成功==1){
结果='文件已成功上载!
';
for(imageNameArray中的imagename)
{
$('.listImage').append(imageNameArray[imagename]+'
');
}
}
否则{
结果='上传文件时出错!
';
}
返回true;
}
下面是php脚本,在该脚本中上载文件,$\u会话变量检索其文件名:
<?php
session_start();
$result = 0;
$errors = array ();
$dirImage = "ImageFiles/";
if (isset ( $_FILES ['fileImage'] ) && $_FILES ["fileImage"] ["error"] == UPLOAD_ERR_OK) {
$fileName = $_FILES ['fileImage'] ['name'];
$fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION );
$fileExt = strtolower ( $fileExt );
$fileDst = $dirImage . DIRECTORY_SEPARATOR . $fileName;
if (count ( $errors ) == 0) {
if (move_uploaded_file ( $fileTemp, $fileDst )) {
$result = 1;
}
}
}
$_SESSION ['fileImage'][] = $_FILES ['fileImage']['name'];
?>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result;?>);</script>
window.top.stopImageUpload();
因为for(数组中的var)
迭代数组的索引。你应该做什么
$('.listImage').append(imageNameArray[imagename] + '<br/>');
$('.listImage').append(imageNameArray[imagename]+'
');
因为在数组上使用for in
循环,imageName
将等于数组索引,而不是其值。很像(窗口中的i)的,
,我将列出窗口对象的所有方法和属性
由于这是一个数组,我强烈建议您使用for(I=0;iHi,当您说您强烈建议使用:for(I=0;我刚刚意识到,如果我上传一个文件(dog.png),那么它会附加文件名dog.png,这很好,但是如果我上传文件cat.png,它会再次附加文件名dog.png,这是为什么(i=0;我可以发布你正在使用的代码吗?或者只是做一个console.log(imageNameArray)
来查看数组中的内容我更新了上面的代码以显示我正在使用的代码,我已经将循环保留到原来的状态,因为当我尝试:for(i=0;我刚刚意识到如果我上传一个文件(dog.png),然后它会附加文件名dog.png,这很好,但是如果我上传文件cat.png,它会再次附加文件名dog.png,这是为什么?
$('.listImage').append(imagename + '<br/>');
$('.listImage').append(imageNameArray[imagename]+ '<br/>');
$('.listImage').append(imageNameArray[i]+ '<br/>');
for(var i=0;i<imageNameArray.length;i++)
{
$('.listImage').append(imageNameArray[i]+ '<br/>');
}