API upload image
Add: - utils/pickImage.ts - service/upload-service.ts - constants/directory-id.ts - constants/base-url-api-strorage.ts ### No Issue
This commit is contained in:
68
app/(application)/coba/upload-service.ts
Normal file
68
app/(application)/coba/upload-service.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
/* eslint-disable @typescript-eslint/no-unused-vars */
|
||||
import { apiConfig } from "@/service/api-config";
|
||||
import Toast from "react-native-toast-message";
|
||||
|
||||
export async function tryUploadService({
|
||||
dirId,
|
||||
imageUri,
|
||||
}: {
|
||||
dirId: string;
|
||||
imageUri: string | null;
|
||||
}) {
|
||||
if (!imageUri) {
|
||||
Toast.show({
|
||||
type: "error",
|
||||
text1: "Gagal",
|
||||
text2: "Harap pilih gambar terlebih dahulu",
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
const uri = imageUri;
|
||||
const filename = uri.split("/").pop();
|
||||
const match = /\.(\w+)$/.exec(filename || "");
|
||||
const type = match ? `image/${match[1]}` : "image";
|
||||
|
||||
const formData = new FormData();
|
||||
// @ts-ignore: React Native tidak mengenal Blob secara langsung
|
||||
formData.append("file", {
|
||||
uri,
|
||||
name: filename,
|
||||
type,
|
||||
});
|
||||
formData.append("dirId", dirId);
|
||||
|
||||
const response = await apiConfig.post("/mobile/upload", formData, {
|
||||
headers: {
|
||||
"Content-Type": "multipart/form-data",
|
||||
},
|
||||
timeout: 30000,
|
||||
});
|
||||
|
||||
console.log("Response", JSON.stringify(response.data, null, 2));
|
||||
const { data } = response;
|
||||
|
||||
if (!data.success) {
|
||||
Toast.show({
|
||||
type: "error",
|
||||
text1: "Gagal",
|
||||
text2: data.message,
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Toast.show({
|
||||
type: "success",
|
||||
text1: "File berhasil diunggah",
|
||||
});
|
||||
|
||||
return data;
|
||||
} catch (error) {
|
||||
Toast.show({
|
||||
type: "error",
|
||||
text1: "File gagal diunggah",
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user