как принять только файл apk в react js?

#javascript #reactjs

#язык JavaScript #реагирует на

Вопрос:

 import React from "react"; export default function DropDown() {  const changeHandler=()=gt;{  let value=document.getElementById('someId');  let ext = value.match(/.([^.] )$/)[1];  switch (ext) {  case 'apk':  alert('Allowed');  break;  default:  alert('Not allowed');  value = '';  }  }; return (  lt;gt;  lt;input type="file" id="someId" accept=".apk" onChange={changeHandler} /gt;  lt;/gt;  ); }  

после выбора файла он выдает значение ошибки.совпадение не является функцией. как решить эту проблему, если мы нажмем кнопку «Загрузить», если мы загрузим файл apk, всплывающие окна разрешат или не разрешат всплывающее окно

Комментарии:

1. Ваше объяснение настолько скудно, что мы не смогли понять, к чему вы пытаетесь прийти. Не могли бы вы, пожалуйста, объяснить как следует

2. я хочу загрузить файл apk,только нажав кнопку «Загрузить файл», если я хочу загрузить файл apk, кроме как во всплывающем окне, это не разрешено. если я хочу создать в коде базовый компилятор времени выполнения выдает ошибку»value.match не является функцией». итак, мой вопрос в том, как устранить эти ошибки?

3. Вместо вызова функции при изменении ввода вы можете задать входное значение для состояния и обработать процесс отправки после нажатия кнопки

4. хорошо, спасибо .не могли бы вы, пожалуйста, дать идею в базе кода

Ответ №1:

accept=".apk" Опора, в первую очередь, если она поддерживается браузером, не допускает не .apk -файлов.

Если вы действительно хотите получить фактическое имя файла с расширением, обработчик событий сам передает объект события. Вам просто нужно получить доступ к цели этого события в обработчике изменений.

 const changeHandler=(e)=gt;{  const filename = e.target.files[0].name; // filename.apk  // do whatever you want. }  

вы также можете использовать e.target.files[0].type также покажет, какой тип имени файла был выбран.