将默认值放入 <input type=file....>

Posted

技术标签:

【中文标题】将默认值放入 <input type=file....>【英文标题】:Putting default value in <input type=file....> 【发布时间】:2012-01-09 12:22:39 【问题描述】:

注意:

下面的答案和 cmets 反映了 2009 年旧版浏览器的状态。现在您实际上可以在 2017 年使用 javascript 动态/编程设置文件输入元素的值。

有关详细信息以及演示,请参阅此问题中的答案:How to set file input value programatically (i.e.: when drag-dropping files)?

我想更新一个表。因此,当用户想要更新它时,插入表单会出现在默认值出现在输入框中的位置。但我无法加载&lt;input type=file....&gt;

代码如下:

    <?php
    session_start();
    if(!isset($_SESSION['user']))
        
            header("Location:index.php");
            exit();
        
      include("./include/dbc.php");
      $a=$_REQUEST['apt'];
    $qry="select * from flats where app_name = '$a'";
    $result=mysql_query($qry) or die(mysql_error());
    while($res = mysql_fetch_array($result))
    
     $ai=$res[0];
     $an=$res[1];
     $bn=$res[2];
     $lc=$res[3];
     $st=$res[4];
     $nf=$res[5];
     $ct=$res[6];
     $mp=$res[7];
     $lm=$res[8];
    

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <form id="form1" action="details1.php?ar=<?php echo $a;?>&api=<?php echo $ai;?>" method="post" enctype="multipart/form-data">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Welcome To Prime Properties</title>
    <link rel="stylesheet" href="style.css" type="text/css"/>

    </head>

    <body>
       <div class="container">
            <div class="heading">
                <div class="banner"><img src="../images/top.jpg"   /></div>
            <!--menu start-->
                <div>
                    <?php  include('include/menu.php');?>
                    </div>
            <!--menu end-->

            </div>
            <div class="main">
            <!--left menu start-->
                <div class="left_menu">
                <?php  include('include/lm.php');?>
                </div>
            <!--left menu end-->
            <div class="divider"></div>
            <!--body contant goes here-->
            <div class="right">
                        <p>
                            &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Enter Your Credentials......</p>
                           <fieldset><p class="first">
                                   <label for="a_name" >Appartment Name:</label>
                                    <input type="text" name="a_name" id="a_name" value="<?php echo $an;?>"><br/></input></p>
                <p>
                                <label for="b_name">Builder Name:</label>
                                <input type="text" name="b_name" id="b_name" value="<?php echo $bn;?>"><br/></input></p>
                            <p>
                             <label for="loc">Location:</label>
                             <select name="loc">
                                 <?php $qry1="select location from location where loc_id='$lc'";
                                                            $result1=mysql_query($qry1) or die(mysql_error());
                                                                while($res = mysql_fetch_array($result1))
                                                            $op=$res[0];
                                                            ?>
                                <option value="<?php echo $lc?>"><?php echo $op;?></option>
                                <option value="1">Maligaon</option>
                            </select><br/></p>
                            <p>
                                <label for="status"> Status:</label>
                                <select name="status">
                                    <?php $qry1="select status from status where st_id='$st'";
                                                            $result1=mysql_query($qry1) or die(mysql_error());
                                                                while($res = mysql_fetch_array($result1))
                                                            $sts=$res[0];
                                                            ?>
                                <option value="<?php echo $st?>"><?php echo $sts;?></option>
                                <option value="1">Ongoing</option>
                                <option value="2">Future</option>
                                <option value="3">Completed</option>
                            </select><br/></p>
                               <p><label for="no_flats">No of Flats:</label>
                                  <input type="text" name="no_flats" id="no_flats" value="<?php echo $nf;?>"><br/></input></p>
                            <p><label for="c_time">Completion Time:</label>
                                <?php $ct1=explode("  ", $ct);
                                ?>
                                <select name="month">
                                    <option><?php echo $ct1[0];?></option>
                                    <option>January</option>
                                    <option>February</option>
                                    <option>March</option>
                                    </select>
                                <select name="year">
                                    <option><?php echo $ct1[1];?></option>
                                    <option>2012</option>
                                    <option>2013</option>
                                    <option>2014</option>
                                </select>
                                    </p>
                            <p><label for="m_pic">Main Picture:</label>
                                <td><img src="images/<?php echo $mp?>"   /></td>
                            <input type="file" name="photo"><br/></input></p>
                            <p><label for="l_map">Location Map:</label>
                                <td><img src="loc_images/<?php echo $lm?>"   /></td>
                              <input type="file" name="photo"><br/></input></p>
                               <p class="submit">
                                   <input type="hidden" name="check" value="1"/>
                                   <button type="submit" name="submit" >UPDATE</button></p>
                           </fieldset></div>

            <!--body contant end here -->
        </div>


    </body>
    </html>
    </form>

我该怎么办?

【问题讨论】:

我假设您知道这一点,但我想我会指出以防万一,您在发送“非法”内容后发送标头。此外,您应该转义 $_REQUEST['apt'] 变量以防止 SQL 注入。您的文档中有一些严重的 XHTML 错误,您应该对其进行验证。例如,整个页面被封装在一个form 元素中。 谢谢。但我的问题是 的默认值未加载,而其他输入框加载了从数据库中检索到的默认值。我该如何加载 中的默认值。 How to set file input value programatically (i.e.: when drag-dropping files)?的可能重复 【参考方案1】:

出于安全原因,&lt;input type=file&gt; 元素的值只能由用户更改。无法通过 JavaScript 或 HTML 更改值。

【讨论】:

每个人都在喋喋不休,因为安全原因,这是不可能的,而如果你只显示一个文件的名称,就不会出现任何安全漏洞,这对于很多情况来说已经足够了。

以上是关于将默认值放入 <input type=file....>的主要内容,如果未能解决你的问题,请参考以下文章

input Type=range 设定默认值

001. 为input type=text 时设置默认值

input默认值设置

input 时间字段默认值

radio,checkbox,select,input text获取值,设置哪个默认选中

input type=file文件选择