当前位置: 首页 > 知识库问答 >
问题:

访问上载文件响应文件输入onChange

孙熠彤
2023-03-14

我在jquery中有这段代码

//Js
$(".custom-file-input").on("change", function() {
  var files = Array.from(this.files)
  var fileName = files.map(f =>{return f.name}).join(", ")
  $(this).siblings(".custom-file-label").addClass("selected").html(fileName);
});

//HTML 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" rel="stylesheet"/>
<form>
  <div class="custom-file">
    <input type="file" class="custom-file-input" id="customFile" multiple>
    <label class="custom-file-label" for="customFile">Choose file</label>
  </div>
</form>

正在react中重写

//React
<div class="custom-file">
  <input onChange={(this)=>{
       console.log(this);
       var files = Array.from(this.files)
       var fileName = files.map(f =>{return f.name}).join(", ")
       $(e).siblings(".custom-file-label").addClass("selected").html(fileName);
     }}
    type="file" class="custom-file-input" id="customFile" multiple />
  <label class="custom-file-label" for="customFile">Choose file</label>
</div>

但是我得到了日志的this我得到的undefined,我如何绕过这个问题,为什么反应函数在它的函数中没有this

共有1个答案

韶英达
2023-03-14

好的,您正在尝试上传一个文件并输出一个标签。

我在这里创建了一个示例CodeSandbox

 import React, { useState } from 'react';

 const FileComponent = () => {
   const [files, setFiles] = useState(null);
   const [fileName, setFileName] = useState('')

   const handleChange = (event) => {
     const files = event.target.files;
     if(files.length) {
       const name = Array.from(files) .map((f) => { return f.name; }) .join(", ");
       setFiles(files);
       setFileName(name);
     }
   }


   return (
     <div>
       <input type="file" onChange={handleChange} />
       <label class="custom-file-label" for="customFile">{fileName || 'Choose File' }</label>
     </div>
   )
 }
 类似资料:
  • 我在我的网站上使用Moxiemager,到目前为止它工作得很好 它可以上传jpg/gif/png等 但是我在上传jpeg图像时遇到了麻烦 我用这个图像来测试它http://upload.wikimedia.org/wikipedia/commons/8/86/Cactus_Flower_(简单宏)。jpeg 当我尝试上传它时,会出现一个错误,说"没有指定输入文件" 这就是我编写代码的方式 我也试过

  • 阅读器bean 我尝试这样做:在FlatFileItemReader的实现中,将输入文件路径作为string属性添加到ExecutionContext的映射中。在我的FlatFileItemWriter实现中-重写setResource,并实际从ExecutionContext的值中创建一个Resource对象。这样行吗?

  • 问题内容: 我正在尝试使浏览器下载从ajax响应接收到的pdf文件。 受jquery ajax下载pdf文件启发,我模拟了如下单击/下载事件: 不幸的是,这仅适用于Chrome,不适用于Firefox + IE。当我尝试在最后两个浏览器中触发它时,没有任何反应。 由于从CMS继承,脚本和标记被放置在iframe中,但是我不确定这是否有影响。 关于如何针对所有现代浏览器进行优化的想法? 问题答案:

  • 问题内容: 我正在使用AngularJS和Spring编写应用程序。我想将请求发送到服务器,并将控制器返回的响应下载为文件。在控制器中,我有csv文件的内容(作为字符串),即(1行4列)。将此响应下载为文件的最简单方法是什么? 下面,我发布了我的简化代码。在Spring控制器中: 在javascript(AngularJS)中 我也在尝试(在下面)写入响应流,设置标头,但是在客户端,我总是以字符串

  • 我正在使用AngularJS和Spring编写应用程序。我想向服务器发送请求,并下载控制器返回的响应作为文件。在控制器中,我有csv文件的内容(作为字符串),即<代码>1;2.3.4(1行4列)。将此响应下载为文件的最简单方法是什么? 下面,我发布了我的简化代码。Spring控制器: 在javascript中(AngularJS) 我还试图写入响应流(如下所示),设置标题,但在客户端,我总是以字符

  • 本文向大家介绍基于Java文件输入输出流实现文件上传下载功能,包括了基于Java文件输入输出流实现文件上传下载功能的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了Java实现文件上传下载功能的具体代码,供大家参考,具体内容如下 前端通过form表单的enctype属性,将数据传递方式修改为二进制”流“的形式,服务端(servlet)通过  getInputStream() 获取流信息,