繁体   English   中英

单击文本链接时如何打开文件上传提示?

[英]How to open file upload prompt when text link is clicked?

这适用于FF6和IE 7,8和9,但不适用于Chrome / Safari或Opera:

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>

    <script type="text/javascript">
        $(function() {

            $('#uploadFile').click(function(e) {
                $('#fileUploadField').click();
                e.preventDefault();
            });

        });
    </script>

    <input type="file" name="something" style="display: none" id="fileUploadField" />
    <a href="" id="uploadFile">Upload File</a>

我猜这是由于浏览器安全限制。 有谁知道任何跨浏览器解决方案来实现这一目标?

你不能调用点击隐藏元素,这是一个安全限制。 而不是display: none ,而是使用opacity: 0 这似乎有效。

这是一个小提琴 我看到Win 7上的FF6,Win 7 / Mac OS X 10.6.8上的Chrome 13和Mac OS X 10.6.8上的Safari 5的文件选择对话框

即使没有“display:none”,它也无法在IE8中运行。 单击提交后,IE8将删除文件输入字段中的数据,但不提交表单。 尝试以下代码作为PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>IE8-Test</title>
    <script type="text/javascript" src="js/jquery-1.6.4.min.js"></script>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <script type="text/javascript">
      $('#btn').live('click', function(){
        $('#file').click();
      })
    </script>
  </head>
  <body>
    <form action="test.php" method="POST" enctype="multipart/form-data">
      <input id="file" type="file" name="image" class="image"/>
      <div id="btn">Click me to do a js click on the input type=file button.</div>
      <input id="submit" type="submit" name="formsubmit" value="Upload"/>
    </form>
    <br/>
    <br/>
    <br/>
    <?php
      if(isset($_POST['formsubmit'])){
        echo '<div>POST-Data</div>';
        echo '<pre>';
        var_dump($_POST);
        var_dump($_FILES);
        echo '</pre>';
      }
    ?>
  </body>
</html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM