将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组

Posted

技术标签:

【中文标题】将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组【英文标题】:Read in PHP Div value into a $variable and in Javascript read file names of uploaded files into array 【发布时间】:2015-09-02 05:30:08 【问题描述】:

我有几个问题:

第 1 部分:我有一个 divid="hiddenID"。我想在现有主文件夹sobimages 下创建(如果子文件夹不存在)具有此ID 的子文件夹。

然后将文件写入这个新的子文件夹中。

注意:如果没有子文件夹,它可以工作!

第 2 部分:上传的文件总是留下名称和成功信息。我想从屏幕上删除此消息,包括已上传文件的名称。

第 3 部分:在一个简单的 javascript 数组中读取所有文件名。然后,我将使用 mysql-Databse 中的 Json 来保护它。在您的大力帮助下。我知道怎么做,呵呵

文件body_editarticles.php

        <?php session_start();

            $_db_host = "myserver.com:3306";
            $_db_username = "admin0";
            $_db_passwort = "star1dgffh";
            $_db_datenbank = "sob";
            $_db_currentID ="";

            # Verbindung zur Datenbank herstellen
            $_link = mysql_connect($_db_host, $_db_username, $_db_passwort);

            # Pr�fen ob die Verbindung geklappt hat
            if (!$_link)
            
                # Nein, also das ganze Skript abbrechen !
                die("Keine Verbindung zur Datenbank m�glich: " .
                    mysql_error());
            

            # Datenbank ausw�hlen
            mysql_select_db($_db_datenbank, $_link);

        ?>

        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">

        <head>

            <meta charset="UTF-8" />

            <link rel="stylesheet" type="text/css" href="css/style.css">

            <script type="text/javascript" src="js/scroll.js"></script>

            <script type="text/javascript" src="js/jquery.js" ></script>

            <script type="text/javascript" src="js/jquery.uploadfile.min.js"></script>


        </head>

        <body class="page page-id-11505 page-template-default" onload="jsRecordCurrent();">

        <div id="page-wrap">

        <?php
        include('includes/header.html');
        ?>

        <div id="hiddenID" style="display: none;"></div>


        <div id="mulitplefileuploader" title="">
            <br>
            Upload
        </div>
        <div id="status"></div>

            <script>

            $(document).ready(function()
            

                var settings = 
                    url: "upload.php",
                    method: "POST",
                    allowedTypes:"jpg,png,gif",
                    fileName: "myfile",
                    multiple: true,
                    onSuccess:function(files,data,xhr)
                    
                        $("#status").html("<font color='green'>Upload successful</font>");
                    ,
                    onError: function(files,status,errMsg)
                    
                        $("#status").html("<font color='red'>Upload failed</font>");
                    
                
                $("#mulitplefileuploader").uploadFile(settings);

            );

            </script>

        </div>

        </div>

        </div>

            <div id="aside">

            </div>

            <br class="clearfloat" />
        </div> <!-- End of main container -->

        </div><!-- END Page Wrap -->

        <div id="footer">
            <br class="clearfloat" />

        </div>

        </body>

        </html>

文件“upload.php”

        <?php

        //If directory doesnot exists create it.
        $output_dir = "sobimages/";

        if(isset($_FILES["myfile"]))
        
            $ret = array();

            $error =$_FILES["myfile"]["error"];
            

                if(!is_array($_FILES["myfile"]['name'])) //single file
                
                    $fileName = $_FILES["myfile"]["name"];
                    move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir. $_FILES["myfile"]["name"]);
                    //echo "<br> Error: ".$_FILES["myfile"]["error"];

                    $ret[$fileName]= $output_dir.$fileName;
                
                else
                
                    $fileCount = count($_FILES["myfile"]['name']);
                    for($i=0; $i < $fileCount; $i++)
                    
                        $fileName = $_FILES["myfile"]["name"][$i];
                        $ret[$fileName]= $output_dir.$fileName;
                        move_uploaded_file($_FILES["myfile"]["tmp_name"][$i],$output_dir.$fileName );
                    

                
            
            echo json_encode($ret);

        

【问题讨论】:

停止使用已弃用的mysql_* 库;改用 PDO / MySQLi。另外,是时候学习新的 HTML 编码风格了。 【参考方案1】:

您可以在写入文件之前使用 mkdir 递归地创建文件夹和子文件夹:

mkdir($path, 0777, true);

注意第三个参数,表示递归

查看 mkdir 文档:http://php.net/manual/en/function.mkdir.php

【讨论】:

感谢您的回答。如何将隐藏字段中的数据添加到 ajax 中的现有数据中?【参考方案2】:

1) 将 hiddenID 值发送到 ajax 调用

like var hiddenID = $("#hiddenID").val();

将此id传递给ajax调用,在PHP页面中你可以得到$_POST['hiddenID];

然后使用 mkdir 函数 (mkdir($pathtocreate, 0777, true);) 使用 $_POST['hiddenID] 创建一个目录

3) 读取文件名..... http://www.html5rocks.com/en/tutorials/file/dndfiles/

【讨论】:

感谢您对 hiddenID 提出的这个想法。你能告诉我如何将这个 hiddenID 添加到 ajax 中已经存在的数据中吗?以及如何在upload.php 文件中将其读取出来,那就太好了。我的想法已经结束了...... 取一个像 然后使用 jquery 像 $("#hiddenID ").val();

以上是关于将 PHP Div 值读入 $variable 并在 Javascript 中将上传文件的文件名读入数组的主要内容,如果未能解决你的问题,请参考以下文章

PHP 使用 $this->variable 作为类方法参数默认值

将文件中的双值数字读入 C++ 中的向量并访问它们的值

将 JavaScript 变量传递给 Flask url_for

上手并过渡到PHP7——Uniform Variable Syntax到底统一了什么

PHP返回值到div值

通过 php 将 ActionScript 值写入文件