Php 添加函数时上载文件不工作

Php 添加函数时上载文件不工作,php,Php,这段代码将文件上载到某个目录。现在我想添加文件名检查器以避免覆盖。 我创建了一个函数,如果文件名重复,则返回randomString\u filename,如果不存在重复,则返回准确的文件名。这是用PHP编写的函数: function rnmFile($dir,$flname){ foreach (glob("$dir*.*") as $filename) { if ($filename == $flname){ $characters = '01

这段代码将文件上载到某个目录。现在我想添加文件名检查器以避免覆盖。
我创建了一个函数,如果文件名重复,则返回
randomString\u filename
,如果不存在重复,则返回准确的文件名。这是用PHP编写的函数:

function rnmFile($dir,$flname){
    foreach (glob("$dir*.*") as $filename) {
        if ($filename == $flname){
            $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
            $randomString = '';
            for ($i = 0; $i < 10; $i++) {
                $randomString .= $characters[rand(0, strlen($characters) - 1)];
            }
            return $randomString.'_'.$flname;
        }
        else {
            return $flname;
        }

    }
}
其余的也适用。 顺便说一句,这是访问文件上载的代码

<div id="content">
    <div id="mulitplefileuploader">Upload!</div>
    <div id="status"></div>
    <script>

        $(document).ready(function()
        {

            var settings = {
                url: "upload_logic.php",
                method: "POST",
                allowedTypes:"jpg,png,gif,doc,pdf,zip",
                fileName: "myfile",
                multiple: true,
                onSuccess:function(files,data,xhr)
                {
                    $("#status").html("<font color='green'>Upload is success</font>");
                },
                onError: function(files,status,errMsg)
                {
                    $("#status").html("<font color='red'>Upload is Failed</font>");
                }
            }
            $("#mulitplefileuploader").uploadFile(settings);

        });
    </script>
</div>

上传!
$(文档).ready(函数()
{
变量设置={
url:“upload_logic.php”,
方法:“张贴”,
允许的类型:“jpg、png、gif、doc、pdf、zip”,
文件名:“myfile”,
多重:对,
onSuccess:函数(文件、数据、xhr)
{
$(“#status”).html(“上传成功”);
},
onError:函数(文件、状态、errMsg)
{
$(“#状态”).html(“上传失败”);
}
}
$(“#mulitplefileuploader”).uploadFile(设置);
});

它还使用jQuery上传插件

好的,回答我自己的问题。 变量
$fileName
也可以通过
jquery.uploadfile.min.js
访问,因此我利用了它并将其用作变量。我还删除了一些无用的代码,并将
glob()
函数替换为
file\u exist()
。这就是目前正在运行的代码

<?php
session_start();
$table_name = $_SESSION['un'];
if (!is_dir($table_name)) {
    mkdir($table_name);
}
$output_dir = $table_name . '/';

if(isset($_FILES["myfile"]))
{
    function rnmFile($dir,$flname){

            if (file_exists($dir.$flname)){
                $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
                $randomString = '';
                for ($i = 0; $i < 15; $i++) {
                    $randomString .= $characters[rand(0, strlen($characters) - 1)];
                }
                return $randomString.'_'.$flname;
            }
            else {
                return $flname;
            }

        }
    }

            $fileName = rnmFile($output_dir,$_FILES["myfile"]["name"]);
            move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.''.$fileName);
?>


到目前为止,您是如何调试代码的?您是否尝试过编写注释以查看执行过程是如何进行的,或者代码到底在哪里失败?你应该把调试语句放在你怀疑代码可能出错的地方,如果它要求你在代码的每一行都写调试语句,那么你就应该这样做。我添加了
echo一些调试代码,但它没有显示出来。我还尝试添加了
print\u r
也没有显示错误这很难理解你说的echo some\u for\u进行调试,作为开始,你需要做的是从脚本的顶部到底部打印所有值(至少在你觉得有必要的地方),然后查看“哪个”确切值没有打印,这将给你一个提示problem@XtraCode
文件上传似乎不起作用
究竟在哪里不起作用?
if(isset($\u FILES[“myfile”])
中的PHP代码是否得到执行?是的,但是当我尝试添加函数时,它不再工作了
<div id="content">
    <div id="mulitplefileuploader">Upload!</div>
    <div id="status"></div>
    <script>

        $(document).ready(function()
        {

            var settings = {
                url: "upload_logic.php",
                method: "POST",
                allowedTypes:"jpg,png,gif,doc,pdf,zip",
                fileName: "myfile",
                multiple: true,
                onSuccess:function(files,data,xhr)
                {
                    $("#status").html("<font color='green'>Upload is success</font>");
                },
                onError: function(files,status,errMsg)
                {
                    $("#status").html("<font color='red'>Upload is Failed</font>");
                }
            }
            $("#mulitplefileuploader").uploadFile(settings);

        });
    </script>
</div>
<?php
session_start();
$table_name = $_SESSION['un'];
if (!is_dir($table_name)) {
    mkdir($table_name);
}
$output_dir = $table_name . '/';

if(isset($_FILES["myfile"]))
{
    function rnmFile($dir,$flname){

            if (file_exists($dir.$flname)){
                $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
                $randomString = '';
                for ($i = 0; $i < 15; $i++) {
                    $randomString .= $characters[rand(0, strlen($characters) - 1)];
                }
                return $randomString.'_'.$flname;
            }
            else {
                return $flname;
            }

        }
    }

            $fileName = rnmFile($output_dir,$_FILES["myfile"]["name"]);
            move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.''.$fileName);
?>