链接单击打开文件浏览器

时间:2014-02-10 20:53:18

标签: php jquery file-upload

我正在尝试复制Facebook上用于更改个人资料照片的照片上传脚本。我希望用户点击一个链接,它会自动打开文件浏览器,然后当他们点击确定时它会提交图像。

我想知道的是如何在点击链接时触发文件浏览器,以及当他们按下确定时如何触发提交?

我已经有了表格,但希望更加精简。

当前脚本:

<a href="#" data-reveal-id="changeImage"><i class="fa fa-pencil"></i> Edit Client Image</a>
<div id="changeImage" class="reveal-modal">
<form action="view.php" enctype="multipart/form-data" method="post" name="imgForm" id="imgForm">
    <input type="file" name="clientImage" id="clientImage" accept="image/*" />
    <input name="doEditImg" type="submit" id="doEditImg" value="Save" />
</form>
</div>

3 个答案:

答案 0 :(得分:0)

我使用以下代码解决了这个问题。

链接:<a href="#" id="changeImage"><i class="fa fa-pencil"></i> Edit Client Image</a>

表格:<form action="view.php" enctype="multipart/form-data" method="post" name="imgForm" id="imgForm"><input type="file" name="clientImage" id="clientImage" style="visibility:hidden;" accept="image/*" onchange="this.form.submit()" /></form>

Jquery的:

$('#changeImage').click(function(){
    $('#clientImage').trigger('click');
    return false;
});

答案 1 :(得分:0)

它的工作方式是有一个真正的文件选择按钮,但它是隐藏的。然后有一个链接,使其所有功能都与文件选择器链接,所以当点击链接时,单击文件选择器并显示你是浏览窗口。这可以用jquery和一些css

以下代码可以帮助您,根据您的需要进行修改

步骤1。 jquery文件 您可以下载它或使用Jquery.com

中的api

step2.the代码

<html>
<script type="text/javascript" src="code.jquery.com/jquery-1.10.2.min.js"></script> //use an api link to avoid keep on downloading the latest jquery version

<script>
//the script below will load the preview of the image in a div which has an id of image_preview
if (window.FileReader) {
  function handleFileSelect(evt) {
    var files = evt.target.files;
    var f = files[0];
    var reader = new FileReader();

      reader.onload = (function(theFile) {
        return function(e) {
          document.getElementById('image_preview').innerHTML = ['<img class="the_img_prev" src="', e.target.result,'" title="', theFile.name, '">'].join('');
        };
      })(f);

      reader.readAsDataURL(f);
  }
 } else {
  alert('This browser does not support FileReader');
}

//the script will make the link act like a file selector
document.getElementById('files_selector').addEventListener('change', handleFileSelect, false);
</script>

<!-------------the form part---------------->
<form id="image" action="upload.php" method="POST">
<input type="file" id="files_selector" name="image"  style="display:none;"><!--the hidden selector-->
<a href="#" class="image_selector" id="image_selector" onclick="document.getElementById('files_selector').click();" /><!--the link that acts as the selector -->
</form>

<div id="image_preview"><!-----the selected image will be previewed in this div---></div>
</html>

答案 2 :(得分:-1)

在这里重新发明轮子没有意义:)文件上传有一堆好的jquery(和纯js)库...

jQuery File Upload Basic Demo看起来它会做你想要的(并且看起来也很好)。另一个我听过很多好事:Dropzone JS。两者都支持单击一个简单的链接来启动文件浏览器,选择一个文件并开始上传过程等。