如何将上传文件的名称设置为输入类型:html 中 javascript 上的文本

Posted

技术标签:

【中文标题】如何将上传文件的名称设置为输入类型:html 中 javascript 上的文本【英文标题】:How to set uploaded file's name to an input type:text on javascript in html 【发布时间】:2020-07-31 12:23:47 【问题描述】:

我想向我的 html 页面添加一个文件上传控件,如下所示。

<input class="form-control valid" id="rptScreenShot" type="text" style="float:left;" runat="server"
                               data-val="true" data-val-maxlength="The field Report Sample must be a string or array type with a maximum length of '600'." 
                               data-val-maxlength-max="600" value="" aria-invalid="false" />
<label class="btn btn-default btn-file">
    Browse <input class="form-control" id="upld_sample1" type="file" name="file_rptsample1" style="display: none;">
</label>

我无法做到的是在用户浏览文件后捕获所选文件并通过 javascript 或 jquery 将其设置为 rptScreenShot 的值。任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

类似下面的东西?

$("#upld_sample1").on("change", function(e)
  console.log("Fileinfo:", e.target.files[0])
  $("#rptScreenShot").val(e.target.files[0].name)
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input class="form-control valid" id="rptScreenShot" type="text" style="float:left;" runat="server" data-val="true" data-val-maxlength="The field Report Sample must be a string or array type with a maximum length of '600'." data-val-maxlength-max="600"
  value="" aria-invalid="false" />
<label class="btn btn-default btn-file">
    Browse <input class="form-control" id="upld_sample1" type="file" name="file_rptsample1" style="display: none;">
</label>

【讨论】:

但是没有文件的完整路径,如何在点击保存按钮后从用户本地上传到服务器?有办法吗? 所有信息都在e.target.files[0] 中,您的问题只要求输入中的名称 @JesusHamdi 您通常在 JS 中使用 FormData 将上传的文件传递到服务器,文件本身已附加,您不需要路径 抱歉,我在 e.target.files[0] 中看不到完整路径?顺便说一句,感谢您的帮助。 我将创建另一个问题,以便在稍后处理文件后将文件发送到服务器。感谢您的宝贵时间。

以上是关于如何将上传文件的名称设置为输入类型:html 中 javascript 上的文本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 html 文件选择器(输入类型 =“文件”)将照片上传到 facebook(图形 api)

如何在 html 中设置输入类型=文件的样式? [复制]

如何将excel 转换为html

如何将图像从 url 沿侧输入类型文件加载到 html5 画布?

在使用图像作为输入文件的输入类型文件中显示图像文件名

如何在上传到服务器之前将文件名设置为 NSData