Php 它只显示一个文件名
我有一个$\u会话变量,它应该显示已上载文件的名称。问题是它没有这样做,它只是为1个文件和1个文件显示文件名。例如,如果我上传文件'jellyish.png'和'tulips.png',它应该显示Php 它只显示一个文件名,php,javascript,jquery,json,Php,Javascript,Jquery,Json,我有一个$\u会话变量,它应该显示已上载文件的名称。问题是它没有这样做,它只是为1个文件和1个文件显示文件名。例如,如果我上传文件'jellyish.png'和'tulips.png',它应该显示$\u会话['fileImage']的文件名'jellyish.png'和'tulips.png'但是它显示了两个文件名作为第一个名称,如:“jellyphish.png”和“jellyphish.png” 当我执行var_转储($_会话['fileImage'])对于上面的示例,它输出以下内容:str
$\u会话['fileImage']的文件名'jellyish.png'和'tulips.png'代码>但是它显示了两个文件名作为第一个名称,如:“jellyphish.png”和“jellyphish.png”
当我执行var_转储($_会话['fileImage'])
对于上面的示例,它输出以下内容:string(13)“jellyphish.jpg”
,无论上载哪个文件。如果我刷新浏览器,假设我上传到服务器的最后一个文件是“tulips.png”,那么它会为每个文件输出以下内容:string(10)“tulips.jpg”
,无论下次刷新之前上传了哪个文件
是否有人知道如何修复此问题,以便在$\u会话变量下为每个上载的文件显示正确的文件名
下面是php脚本:
<?php
session_start();
$dirImage = "ImageFiles/";
if (isset ( $_FILES ['fileImage'] ) && $_FILES ["fileImage"] ["error"] == UPLOAD_ERR_OK) {
$_SESSION ['fileImage'] = $_FILES ['fileImage']['name'];
$fileName = $_FILES ['fileImage'] ['name'];
$fileExt = pathinfo ( $fileName, PATHINFO_EXTENSION );
$fileExt = strtolower ( $fileExt );
$fileDst = $dirImage . DIRECTORY_SEPARATOR . $fileName;
$filePrifix = basename ( $fileName, "." . $fileExt );
$i = 0;
while ( file_exists ( $fileDst ) ) {
$i ++;
$fileDst = $dirImage . DIRECTORY_SEPARATOR . $filePrifix . "_" . $i . "." . $fileExt;
}
// Move the file
if (count ( $errors ) == 0) {
if (move_uploaded_file ( $fileTemp, $fileDst )) {
$result = 1;
}
}
}
?>
<script language="javascript" type="text/javascript">window.top.stopImageUpload(<?php echo $result;?>);</script>
window.top.stopImageUpload();
下面是包含JSON的Javascript代码:
function stopImageUpload(success){
var imagename = <?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/>';
$('.listImage').append(imagename + '<br/>');
}
else {
result = '<span class="emsg">There was an error during file upload!</span><br/><br/>';
}
return true;
}
<?php
var_dump($_SESSION ['fileImage']);
?>
函数stopImageUpload(成功){
var imagename=;
var结果=“”;
如果(成功==1){
结果='文件已成功上载!
';
$('.listImage').append(imagename+'
');
}
否则{
结果='上传文件时出错!
';
}
返回true;
}
会话不起作用,因为您复制了我编写的脚本并删除了问题,第三次没有将其作为新问题添加。。如果你自己编写脚本,你应该能够纠正这个简单的错误
让这成为你最后一次这样做
替换
$_SESSION ['fileImage'] = $_FILES ['fileImage']['name'];
与
为什么要删除并重新添加此问题????我们中的一些人记忆力很好,你知道可能是重复的让这是你最后一次这样做:)@Baba我删除这个问题的原因是因为你在上一个问题中的答案没有解决任何问题(当人们看到我和你在上一个问题中的答案时,我相信他们没有尝试添加自己的答案)但它仍然不能解决这个问题。如果我将$\u SESSION变量更改为您所述的值,它将不起作用,因为它在追加$\u SESSION时一直显示“null”。我删除了之前的问题,因为我在10小时内只获得了27个视图,而在这个问题上,我在11分钟内获得了23个视图。这就是为什么我删除了前面的问题并添加了这个问题1。易于理解的下次只需更新答案2。如果它真的解决了问题,你不必用我的答案三次三次地提出新问题。。如果1个视图解决了您的问题,那么4个视图需要23个视图。如果你继续删除其他人是如何学习的???@Baba,1。我上次更新了答案,并对问题进行了评论。我等了9个多小时,没有得到你的评论或回复。2.我不必使用你的答案,但在你发布答案之前,最好确保你的答案是正确的。如果它是不正确的,那么看看我的评论,当我说它是不正确的。3.其他用户看到你的答案贴出来了,因此他们不回答这个问题,因为他们认为这个问题已经有答案了,或者我正在和你讨论答案。4.更多的观点意味着更多的机会得到正确的答案。@Baba从上一条评论继续。。。上一次我在10个小时内只看了27次,这意味着我在合理的时间内得到答案的机会微乎其微。
$_SESSION ['fileImage'][] = $_FILES ['fileImage']['name'];