Получить тип файла в реакции js

В ответ

const allInputs = { imgUrl: '' };
const [imageAsFile, setImageAsFile] = useState('');
const [imageAsUrl, setImageAsUrl] = useState(allInputs);
const [media, setMedia] = useState(null);

const handleImageAsFile = (e) => {
    const image = e.target.files[0]
    setImageAsFile(imageFile => (image));
    console.info(imageAsFile);

}

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

<input type = "text"
    id = "phone"
    onChange = {(e) => setPhone(e.target.value)}
/>

Например, если я выбираю изображение, как узнать тип выбранного изображения? Если это png или jpg или что-то еще, прежде чем загружать его в базу данных.

Я думаю, это может помочь stackoverflow.com/questions/18299806/…

Sudhanshu Kumar 24.12.2020 14:50

Javascript, используемый в реакции, отличается от того, который используется для обычных html, css и js.

Raphael Inyang 24.12.2020 14:52

есть ли ответ, который использует хуки в реакции

Raphael Inyang 24.12.2020 14:53

Это что-то вроде новой концепции, которую вы представили. Вы должны позволить javascript работать так, как он работает.

Sudhanshu Kumar 24.12.2020 14:53

Нет смысла добавлять в код хуки для поиска типа изображения, это совершенно не нужно.

Sudhanshu Kumar 24.12.2020 14:55
<input type = "file" id = "your-files" multiple> <script> var control = document.getElementById("your-files"); control.addEventListener("change", function(event) { // When the control has changed, there are new files var files = control.files, for (var i = 0; i < files.length; i++) { console.info("Filename: " + files[i].name); console.info("Type: " + files[i].type); console.info("Size: " + files[i].size + " bytes"); } }, false); </script> React так не работает
Raphael Inyang 24.12.2020 14:56

React не использует тег scripts, и то, что работает в теге script, не работает так же, как в React.

Raphael Inyang 24.12.2020 14:58

используйте свойство типа в вашей переменной изображения, т.е. image.type, будет работать. Если вы хотите, я могу написать ответ для этого

Sudhanshu Kumar 24.12.2020 15:03

пожалуйста, буду признателен за ответ

Raphael Inyang 24.12.2020 15:09
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
4
9
9 721
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Во-первых, React Javascript работает точно так же, как Javascript работает везде. Для доступа к типу изображения обратитесь к приведенному ниже коду, я добавил комментарии для лучшего понимания.

const [imageAsFile, setImageAsFile] = useState('');
    const [imageAsUrl, setImageAsUrl] = useState(allInputs);
    const [media, setMedia] = useState(null);

 const handleImageAsFile = (e) => {
     //image var holds the file object which has a type property 
      const image = e.target.files[0];          
      console.info(image.type); // this will output the mime, i.e "image/png" or "image/jpg"
      setImageAsFile(imageFile => (image));
     console.info(imageAsFile);

  }

Другие вопросы по теме