【问题标题】:How can I check if the file uploaded to the server is blank using javascript?如何使用javascript检查上传到服务器的文件是否为空白?
【发布时间】:2020-05-23 12:50:43
【问题描述】:

我已经构建了一个 react 应用程序并创建了 Fileupload 模块来将 YAML 文件从本地上传到服务器。

任何人都可以帮助我实施检查,以便如果用户上传空文件,那么他们应该收到警报('已上传空文件')。

将我的客户端和服务器端的可重现部分放在这里,我已经处理了文件的语法并检查了每一行的注释,并尝试实现空白文件验证,但它不起作用。任何人都可以在以下方面提供帮助。

客户端

handleUpload = async (e) => {
    console.log("Starting upload");
    const formData = new FormData();
    formData.append("file", this.state.file);

    try {
      const res = await axios.post(this.props.url + "/upload", formData, {
        headers: {
          "Content-Type": "multipart/form-data",
        },
      });

      const { status } = res.data;
      if (status === "ok") {
        alert("File Uploaded Successfully");
        this.setState({ file: "" });
        this.setState({ fileName: "Choose File" });
        document.getElementById("closeButton").click();
      } 
      else if (status === "invalid") {
        const { error } = res.data
        // console.log(error.message)
        var errmsg= "Invalid Syntax!!"+ error.message
        alert(errmsg);
      }
      else if (status === "Invalid File") {
        alert("Invalid File");
        this.setState({ file: "" });
        this.setState({ fileName: "Choose File" });
        document.getEementById("closeButton").click();
      }
      else if (status === "Blank") {
        alert("Error!!");
        this.setState({ file: "" });
        this.setState({ fileName: "Choose File" });
        document.getEementById("closeButton").click();
      }
    } catch (err) {
        console.log(err.response.data.msg); 
    }
  };
```

【问题讨论】:

    标签: javascript reactjs


    【解决方案1】:

    您可以使用像这样的文件读取器 API 来获取内容并执行验证(如正则表达式验证,以检查它是否为空)我在这里所做的只是一个简单的示例,根本不是最好的示例,但您得到了这个想法。

    var r = new FileReader();
          r.onload = function(e) { 
              var contents = e.target.result;
                  if(contents.trim().length === 0) {
                       console.log('empty file');
                  } else { // upload file }
            );  
          }
          r.readAsText(f)
    

    希望对你有帮助,祝你有美好的一天!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 2012-10-01
      相关资源
      最近更新 更多