Привет, я не уверен, что вы пытаетесь достичь и что вы подразумеваете под «попытаться прочитать файл»?
Интерфейс File предоставляет информацию о файлах и позволяет JavaScript на веб-странице получать доступ к их файлам. content.
Объект File - это определенный тип c большого двоичного объекта, который может использоваться в любом контексте, который может использовать BLOB-объект. В частности, FileReader, URL.createObjectURL (), createImageBitmap () и XMLHttpRequest.send () принимают как BLOB-объекты, так и файлы.
Таким образом, вы можете сохранить это состояние и получить обратно.
Но если вам нужно прочитать содержимое файла, вам нужно использовать FileApi. Посмотрите на этот пример компонента.
Существует два обработчика: один читает файл onChange, а второй - событие onSubmit.
Чтобы протестировать этот компонент, выберите какой-нибудь текстовый файл.
const FileComp = () =>{
const fileRef = React.useRef<HTMLInputElement>(null)
const onSubmit = (event: React.FormEvent<HTMLFormElement>) => {
event.preventDefault();
const file = fileRef?.current?.files?.[0];
if(file) {
const reader = new FileReader();
reader.onload = (e) =>{
const res = e.target?.result;
alert("Handle by onSubmit"+ res);
};
reader.readAsBinaryString(file);
}
}
const onChange = (event: React.ChangeEvent<HTMLInputElement>) => {
const file = fileRef?.current?.files?.[0];
if(file) {
const reader = new FileReader();
reader.onload = (e) =>{
const res = e.target?.result;
alert("Handle by onChange"+ res);
};
reader.readAsBinaryString(file);
}
}
return <div>
<form onSubmit={onSubmit}>
<input type="file" id="myFile" ref={fileRef} onChange={onChange}></input>
<button type="submit">Submit</button>
</form>
</div>
}
Надеюсь, это поможет. Извините за машинопись.