Вот мой собственный код реагирования:
Код: Выделить всё
import * as ImagePicker from "expo-image-picker";
export default function AdminPortal() {
const [image, setImage] = useState(null);
const handleSubmit = () => {
const formData = new FormData();
if (image && !image.canceled) {
const fileUri = image.assets[0].uri;
const fileType = image.assets[0].type;
const fileName = image.assets[0].fileName;
formData.append("file", {
uri: fileUri,
type: fileType,
name: fileName,
});
}
fetch('http://192.168.4.25:7018/post', {
method: 'POST',
body: formData,
})
.then((response) => response.json())
.then((response) => {
console.log('upload succes', response);
})
.catch((error) => {
console.log('upload error', error);
});
Alert.alert("Data submitted", JSON.stringify(data));
// navigation.goBack();
};
return (
Admin Page
Upload Image
{image && !image.canceled && (
Image selected: {image.assets[0].fileName}
)}
Submit
Код: Выделить всё
[HttpPost]
public async Task Create(IFormFile file)
{
try
{
var imageUrl = new ImageHandler(_cloudinary).ImageUploader(file);
_logger.LogInformation("A new post has been created");
return Ok(new { message = "A new post has been created" });
}
catch (Exception ex)
{
return StatusCode(500, new { message = ex.Message });
}
}
- Я вижу, что другие мои API нормально работают с другими типами, и приложение подключено к серверная часть.
- Код серверной части выглядит нормально, поскольку я также могу попасть в точку останова из PostMan с выбранным файлом.
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/790 ... rp-backend