Some browsers have a security feature that prevents JavaScript from knowing your file's local full path. It makes sense - as a client, you don't want the server to know your local machine's filesystem. It would be nice if all browsers did this.
Just post the form: the browser will take care of the upload. Your web site doesn't need to know the full path back on the client.
use multipart/form-data when your form includes any <input type="file"> elements
text, number, and picture are received by server
import React, { useState } from 'react';
import {
IonContent, IonHeader, IonPage, IonTitle, IonToolbar,
IonAlert, IonButton, IonCard, IonCardHeader,
IonCardSubtitle, IonCardTitle, IonCardContent,
IonItem, IonIcon, IonLabel, IonBadge, IonList,
IonItemDivider, IonCheckbox, IonChip, IonAvatar,
IonGrid, IonRow, IonCol, IonInput
} from '@ionic/react';
import ExploreContainer from '../components/ExploreContainer';
import './Tab1.css';
import { pin, heart, closeCircle, close } from 'ionicons/icons';
const Tab1: React.FC = () => {
const [text, setText] = useState<string>();
const [number, setNumber] = useState<number>();
const [path, setPath] = useState<string>()
return (
<IonPage>
<IonHeader>
<IonToolbar>
<IonTitle>IonInput Examples</IonTitle>
</IonToolbar>
</IonHeader>
<IonContent>
<form action='http://ptsv2.com/t/wq6e8-1586646697/post' method='post'
encType='multipart/form-data'>
<IonList>
<IonItem>
<IonLabel position="stacked">Text</IonLabel>
<IonInput value={text} placeholder="Text" name='text'
onIonChange={e => setText(e.detail.value!)} clearInput></IonInput>
</IonItem>
<IonItem>
<IonLabel position="stacked">Number</IonLabel>
<IonInput type="number" value={number} placeholder="Number" name='num'
onIonChange={e => {
const n = parseFloat(e.detail.value!)
isNaN(n) ? setNumber(1) : setNumber(n)
console.log(number)
}}></IonInput>
</IonItem>
<IonItem>
<IonLabel position="stacked">Picture {path}</IonLabel>
<input type="file" name='pic' id="pic"
onChange={e => setPath(e.target.value)}
style={{ marginTop: 10, marginBottom: 10 }} />
</IonItem>
<IonItem>
<IonButton type='submit'>Submit</IonButton>
</IonItem>
</IonList>
</form>
</IonContent>
</IonPage>
);
};
export default Tab1;
reference:
No comments:
Post a Comment