【问题标题】:Can't get value of input type="file"?无法获取输入类型 =“文件”的值?
【发布时间】:2011-08-19 16:29:15
【问题描述】:

我有一个<input type="file" id="uploadPicture" value="123">

当我使用时:alert($("#uploadPicture").val());

它会提醒一个空对话框。

【问题讨论】:

标签: javascript jquery file input


【解决方案1】:

你可以阅读它,但你不能设置它。 value="123" 将被忽略,因此在您单击它并选择一个文件之前它不会有值。

即使这样,该值也可能会被 c:\fakepath\ 之类的东西破坏,以保持用户文件系统的详细信息不公开。

【讨论】:

  • 对——浏览器也有不同的处理方式,例如firefox只会在选择文件后显示文件名,而有些可能会显示完整路径。这个客户端你真的无能为力..你想完成什么OP?
【解决方案2】:
$('input[type=file]').val()

这会让你选择文件。

但是,您不能自己设置值。

【讨论】:

    【解决方案3】:

    您不能在标记中设置file 输入的value,就像您对value="123" 所做的那样。

    这个例子表明它确实有效: http://jsfiddle.net/marcosfromero/7bUba/

    【讨论】:

      【解决方案4】:

      你可以通过 document.getElementById(); 来获取它

      var fileVal=document.getElementById("some Id");
      alert(fileVal.value);
      

      将给出文件的值,但它给出了 fakepath 如下

      c:\fakepath\filename
      

      【讨论】:

        【解决方案5】:

        这是个老问题,但以防万一有人撞到这个踏板......

        var input = document.getElementById("your_input");
        var file = input.value.split("\\");
        var fileName = file[file.length-1];
        

        不需要正则表达式,jQuery....

        【讨论】:

          【解决方案6】:

          @BozidarS:FileAPI 现在得到了很好的支持,并提供了许多有用的选项。

          var file = document.forms['formName']['inputName'].files[0];
          //file.name == "photo.png"
          //file.type == "image/png"
          //file.size == 300821
          

          【讨论】:

            【解决方案7】:

            不要在文件输入值=“123”中给出这个。

              $(document).ready(function(){  
            
                  var img = $('#uploadPicture').val();
            
              });
            

            【讨论】:

              【解决方案8】:

              文件数组

              let files = document.getElementById('your_input_id').files
              

              第一个文件

              let file = document.getElementById('your_input_id').files[0]
              

              显示图片加载

              const reader = new FileReader()
              
              let files = document.getElementById('your_input_id').files
              reader.onload = async (event) => {
                  document.getElementById('preview').setAttribute('src', event.target.result)
              }
              reader.readAsDataURL(files[0])
              

              【讨论】:

                猜你喜欢
                • 2013-10-09
                • 2017-05-08
                • 2015-04-09
                • 2021-09-28
                • 2021-06-29
                • 2013-11-04
                • 2019-02-16
                • 2019-03-29
                相关资源
                最近更新 更多