上传文件后保存数据库中的文件名

时间:2015-07-16 04:19:17

标签: php mysql ajax json

我将图片文件保存在服务器上。

我想使用此文件名将它们保存在现有数据库中。

数据库名称是" sob"这个表是" items"。字段名称为" PicturesFilenames"。它是一个中等文本字段。我想保存上传文件前几秒钟的所有文件名,用#。

分隔

我堆叠,不知道该怎么做。

有些代码太棒了。我尝试了很多方法但没有成功。

文件:" upload_bodyarticles.php"

            <?php session_start();

            $_db_host = "xxx.xxx.com:3306";
            $_db_username = "admin0";
            $_db_passwort = "xxx0";
            $_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" />

            <title>SoB - Administration</title>

            <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/producttemplate.js"></script>

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

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

            <script type="text/javascript">

                $(function()
                    {
                        $(document).on('click', 'a.ajaxify', function (e) {
                            e.preventDefault(); // prevent normal link navigation
                            var $this = $(this),
                                url = $this.attr('href');
                            $('#main-content').empty();
                            $("#main-content").load(url);
                            return false;
                        });
                    }
                );

            </script>

            <style type="text/css">.buttonarea: (\a)</style>

            <script type="text/javascript">
            <!--

            var js_string;
            document.getElementById("recordWrite").disabled = true;

            var ArrivalDateShownYN = "";
            var CurrentPreviousNext = "";
            var date = new Date();
            var mysqlDateTime;
            var yyyy = date.getFullYear();
            var mm = date.getMonth() + 1;
            var dd = date.getDate();
            var hh = date.getHours();
            var min = date.getMinutes();
            var ss = date.getSeconds();

            mysqlDateTime = yyyy + '-' + mm + '-' + dd + ' ' + hh + ':' + min + ':' + ss;


            var frm = $('#form_articles');
            frm.submit(function (ev) {
                alert(form_articles.ID.value);
                $.ajax({
                    type: frm.attr('method'),
                    url: frm.attr('action'),
                    data: frm.serialize(),
                    success: function (data) {
                        alert('ok');
                    }
                });
                ev.preventDefault();
            });

            elem = document.getElementById('buttonID');
            function stop(e) {
                e.preventDefault(); // browser - don't act!
                e.stopPropagation(); // bubbling - stop
                return false; // added for completeness
            }

            elem.addEventListener('click', stop, false);

            // this handler will work
            elem.addEventListener('click', function() { alert('I still work') }, false);
            //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

            function jsRecordUpdateWrite()
            {

                var strTimestring = new Date().toISOString().slice(0, 19).replace('T', ' ');

                var jsObject = {
                    "ID": document.form_articles.ID.value,
                    "Item": document.form_articles.Item.value,
                    "ItemNo": document.form_articles.ItemNo.value,
                    "Material": document.form_articles.Material.value,
                    "Age": document.form_articles.Age.value,
                    "ItemSize": document.form_articles.ItemSize.value,
                    "Price": document.form_articles.Price.value,
                    "Info": document.form_articles.Info.value,
                    "InfoRed": document.form_articles.InfoRed.value,
                    "ArrivalDate": document.form_articles.ArrivalDate.value,
                    "ArrivalDateShown": document.form_articles.ArrivalDateShown.value,
                    "MainPicLink": document.form_articles.MainPicLink.value,
                    "ItemCondition": document.form_articles.ItemCondition.value,
                    "ItemTimestamp": strTimestring,
                    "ItemCategory": document.form_articles.ItemCategory.value
                };

                $.ajax({
                    url        : 'updatearticle.php',
                    dataType   : 'json',
                    contentType: 'application/x-www-form-urlencoded',
                    data       : jsObject,
                    type       : 'POST'
                });
            }


            function jsRecordCurrent() {
                // ... the AJAX request is successful
                var updatePage = function (response) {
                    json_string = JSON.stringify(response);
                    jsBlankArticle();
                    jsShowArticle();
                };
                // ... the AJAX request fail
                var printError = function (req, status, err) {
                    alert("reading record failed");
                };
                // Create an object to describe the AJAX request
                var ajaxOptions = {
                    url: 'currentarticle.php',
                    dataType: 'json',
                    success: updatePage,
                    error: printError
                };
                // Initiate the request!
                $.ajax(ajaxOptions);
            }


            function jsShowArticle() {
                js_articles = JSON.parse(json_string);
                $('[name="recordNext"]').attr("id",js_articles[0]);
                $('[name="recordCurrent"]').attr("id",js_articles[0]);
                $('[name="recordPrevious"]').attr("id",js_articles[0]);
                document.form_articles.ID.value = js_articles[0];
                document.form_articles.Item.value = js_articles[1];
                document.form_articles.ItemNo.value = js_articles[2];
                document.form_articles.Material.value = js_articles[3];
                document.form_articles.Age.value = js_articles[4];
                document.form_articles.ItemSize.value = js_articles[5];
                document.form_articles.Price.value = js_articles[6];
                document.form_articles.Info.value = js_articles[7];
                document.form_articles.InfoRed.value = js_articles[8];
                document.form_articles.ArrivalDate.value = js_articles[9];
                if (js_articles[10] = "Y") {
                    document.form_articles.ArrivalDateShown.checked = true;
                }
                else {
                    document.form_articles.ArrivalDateShown.checked = false;
                }
                document.form_articles.MainPicLink.value = js_articles[11];
                document.form_articles.ItemCondition.value = js_articles[12];
                document.form_articles.ItemCategory.value =  js_articles[14];

                var message_text = "Article Database &nbsp;&nbsp; Item-ID = ";
                var message_array = js_articles[0];

                $("#formheadline").html("<h2>" + message_text + message_array + "</h2>");
                $("#hiddenID").html(message_array);

            }

            // -->
            </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="container-main">
            <div id="main-content">

            <div class="post" id="post-11505">

            <title>SoB - Administration</title>

            <div class="entry">

            <form class="formarticles" id="form_articles" method="post" action="<?= $_SERVER['PHP_SELF'] ?>" name="form_articles">

            <table border="0" cellpadding="0" cellspacing="5">

                <tr>
                    <td align="right" width="120">
                    </td>
                    <td align="left">
                        <span id="formheadline"></span><span id="recordID"></span>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                    </td>
                    <td align="left">
                        <span style="padding-right:20px"><font color="orangered" size="+1"><tt><b>*</b></tt></font>indicates a required field</span>
                    </td>
                </tr>

                <br>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Item</span>
                    </td>
                    <td>
                        <input id="id" name="ID" type="hidden" name="ID">
                        <input id="Item" name="Item" type="text" maxlength="100" size="25"/>
                        <font color="orangered" size="+1"><tt><b>*</b></tt></font>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Item Category</span>
                    </td>
                    <td>
                        <input name="ItemCategory" type="text" maxlength="100" size="25" />
                        <font color="orangered" size="+1"><tt><b>*</b></tt></font>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Item No.</span>
                    </td>
                    <td>
                        <input name="ItemNo" type="text" maxlength="100" size="25" />
                        <font color="orangered" size="+1"><tt><b>*</b></tt></font>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Arrival Date</span>
                    </td>
                    <td>
                        <input name="ArrivalDate" type="date" />
                        <font color="orangered" size="+1"><tt><b>*</b></tt></font>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Show Arrival</span>
                    </td>
                    <td>
                        <input name="ArrivalDateShown" type="checkbox" />
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Material</span>
                    </td>
                    <td>
                        <input name="Material" type="text" maxlength="100" size="25" />
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Condition</span>
                    </td>
                    <td>
                        <input id="ItemCondition"  name="ItemCondition" type="text" maxlength="100" size="25" />
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Age</span>
                    </td>
                    <td>
                        <input name="Age" type="text" maxlength="100" size="25" />
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Item Size</span>
                    </td>
                    <td>
                        <input name="ItemSize" type="text" maxlength="100" size="25" />
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Price</span>
                    </td>
                    <td>
                        <input name="Price" type="text" maxlength="100" size="25" />
                        <font color="orangered" size="+1"><tt><b>*</b></tt></font>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">Info Red</span>
                    </td>
                    <td>
                        <input name="InfoRed" type="text" maxlength="100" size="25" />
                    </td>
                </tr>

                <tr valign="top">
                    <td align="right">
                        <span style="padding-right:20px">Infos</span>
                    </td>
                    &nbsp;&nbsp;
                    <td>
                        <textarea wrap="soft" name="Info" rows="5" cols="30"></textarea>
                    </td>
                </tr>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px">MainPicLink</span>
                    </td>
                    <td>
                        <input type="hidden" name="ItemTimestamp" value="">
                        <input id="MainPicLink" name="MainPicLink" type="text" maxlength="100" size="50" />
                        <input type="hidden" name="timestamp">
                    </td>
                </tr>
                <br><br><br>

                <tr>
                    <td align="right">
                        <span style="padding-right:20px"></span>
                    </td>
                    <td>

                        <img src='sobimages/frame01.jpg' alt='' />
                        <input type="file" name="picture01" id="picture01" />
                    </td>
                </tr>

                <tr id="buttonarea">

                    <td align="left" colspan="2">
                        <hr noshade="noshade" />
                        <input type="button" name="recordPrevious" value=" < " onclick="jsRecordPrevious()"/>
                        <input type="button" name="recordNext" value=" > " onclick="jsRecordNext()"/>&nbsp;&nbsp;

                        <input id="recordDelete" type="submit" name="recordDelete" value="Delete Data" onclick="jsRecordDeleteWrite()" />&nbsp;&nbsp;

                        <input id="recordInsertEditCancel" type="button" name="recordInsertEditCancel" value=" Cancel New/Edit Data " onclick="jsRecordInsertEditCancel()"/>
                        <input id="recordEditWrite" type="submit" name="recordEditWrite" value="Save Edited Data" onclick="jsRecordUpdateWrite()" />&nbsp;&nbsp;

                        <input id="recordInsert" type="button" name="recordInsert" value="Create New Rec."  onclick="jsRecordInsert()"/>
                        <input id="recordInsertWrite" type="button" name="recordInsertWrite" value="Save New Rec." onclick="jsRecordInsertWrite()" />




                    </td>

                </tr>
            </table>

            <select id="lstCategories" name="Choose a Category" size="38"  style="position: absolute; top: 145px; left: 160px; width: 210px; height: 670px;" onclick="lstCategorySelected()">
                <option disabled="TRUE" style="background-color: #C0C0C0;">0200 Japanese Armor Yoroi & Yoroi Parts</option>
                <option>0201 Yoroi</option>
                <option>0202 Cuirass - Dou</option>
                <option>0203 Kusazuri</option>
                <option>0204 Haidate</option>
                <option>0205 Suneate</option>
                <option>0206 Kōgake</option>
                <option>0207 Sode</option>
                <option>0208 Kote</option>
                <option>0209 Helmet - Kabuto</option>
                <option>0210 Jingasa</option>
                <option>0211 Maedate</option>
                <option>0212 Menpō</option>
                <option>0213 Yodare-kake</option>
                <option>0214 Armor Box - Bitsu</option>
                <option>0215 Kabuto Box</option>
                <option>0216 Japanese Weapons</option>
                <option>0217 Other Collectibles</option>
                <option disabled="TRUE" style="background-color: #C0C0C0;">0300 Reacting</option>
                <option>0301 Tsuka Ito</option>
                <option>0302 Idoshi Ito</option>
                <option>0303 Fabric</option>
                <option>0304 Buttons</option>
                <option>0305 Urushi</option>
                <option>0306 Other (2)</option>
                <option>0307 Other (3)</option>
                <option>0308 Other (4)</option>
                <option disabled="TRUE" style="background-color: #C0C0C0;">0400 Japanese Antique</option>
                <option>0401 Ceramic</option>
                <option>0402 Kakejiku - Kakemono Scroll</option>
                <option>0403 Metal Work</option>
                <option>0404 Painting - Ukiyo-e</option>
                <option>0405 Taiko Drum</option>
                <option>0406 Wood Carving</option>
                <option>0407 Other Collectibles</option>
                <option disabled="TRUE" style="background-color: #C0C0C0;">0500 Chinese & Vietnamese Antiques</option>
                <option>0501 Various (1)</option>
                <option>0502 Various (2)</option>
            </select>

            <select id="lstMaterial" name="Choose Materials" size="12" multiple="TRUE" style="position: absolute; top: 345px; left: 840px; width: 210px; height: 200px;">
                <option>Kaki(Persimmons wood)</option>
                <option>Hinoki(Cypress)</option>
                <option>Sugi(Cedar)</option>
                <option>Keyaki(Zelkova)</option>
                <option>Bronze</option>
                <option>Kiri (Paulownia wood)</option>
                <option>Kuri(Chestnut wood)</option>
                <option>Maki-e</option>
                <option>Forged Iron Hardware</option>
                <option>Coral</option>
                <option>Bamboo</option>
                <option>Jade Stone</option>
            </select>
            <input id="lstMaterialToString" type="button" name="materialToString" value="Add Selection to Material"  onclick="lstMaterialSelected()" style="position: absolute; top: 545px; left: 840px;"/>

            </form>

            <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" />

                <?php
                if(isset ($_SESSION['name']))
                {
                    $loginTitle="Logout";
                    $loginLink="body_logout.php";
                }
                else
                {
                    $loginTitle="Login";
                    $loginLink="body_login.php";
                }
                ?>

                <p id="copyright">&copy; 2015 by XXX | <a href="body_termsprivacy.php" class="body_termsprivacy ajaxify">Terms of Use & Privacy Policy</a> | <a href="<?php echo $loginLink;?>" class="body_login ajaxify" id="loginText"><?php echo $loginTitle;?></a></p>
            </div>

            </body>

            </html>

文件:&#34; upload.php&#34;                 

            //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);

            }

            ?>

1 个答案:

答案 0 :(得分:1)

1。使用mysqli_connectmysqli对象或pdo

mysql_connect is deprecated as of PHP 5.5.0

2。在您的代码中

move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir. $_FILES["myfile"]["name"]);

(a)良好做法是使用系统生成的文件名修改提供的文件名::您可以使用time()microtime()函数

即。使用

$_filename = rand().time().end(explode('.', $_FILES['myfile']['name']));

(b)获取图片数据的数据库表字段,并用&#39;#&#39;附加新文件名。作为串联字符串。

即。 $_filename = $dbfiles.'#'.$_filename

(c)使用查询

将此文件名保存到数据库
'UPDATE `items` SET `PicturesFilenames` = \''.$_filename.'\' WHERE foo_id='.$_id
  

我更喜欢逻辑而不是代码,因为编码方法因人而异

谢谢&amp;此致