Проблема с загрузкой изображения с помощью FileSystem.uploadAsync и средства выбора изображений.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Проблема с загрузкой изображения с помощью FileSystem.uploadAsync и средства выбора изображений.

Сообщение Anonymous »

Я пытаюсь использовать expo-image-picker и expo-file-system, чтобы брать/выбирать изображения и загружать их на свой сервер. У меня есть сохранение изображений в состоянии, и я могу получить доступ к ним для отображения и т. д., но у меня возникают проблемы при попытке загрузить их. Я пытаюсь загрузить его на свой сервер, а затем использую PHP, чтобы делать с ним то, что он делает.
У меня есть существующий пример кода, и все это во многом основано на нем, но это не работает ни с https://galaxies.dev/react-native-image-upload
В любом случае, это не совсем то, что я хочу, мне нужно выбрать или взять изображение, а затем использовать манипулятор изображений, чтобы сжать его. У меня все это работает, и я могу получить данные uri или base64.
Как я могу использовать FileSystem.uploadAsync для загрузки самого изображения или данных base64 на мой сервер. В примере я использую PHP для получения данных и их сохранения.
Это то, что я использую для своего RN-кода, без части image.manipulation:
Чтобы получить изображение:

Код: Выделить всё

const selectImage = async (useLibrary: boolean) => {
let result;
const options: ImagePicker.ImagePickerOptions = {
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
aspect: [4, 3],
quality: 0.75
};

if (useLibrary) {
result = await ImagePicker.launchImageLibraryAsync(options);
} else {
await ImagePicker.requestCameraPermissionsAsync();
result = await ImagePicker.launchCameraAsync(options);
}

// Save image if not cancelled
if (!result.canceled) {
setImage(result.assets[0].uri);
upload_img(image); // I have tried (result.assets[0].uri)
}
};
и код, пытающийся загрузить изображение: -

Код: Выделить всё

const upload_img = async (image) => {
setUploading(true);

await FileSystem.uploadAsync('https://mysever/upload.php', uri, { // I have tried changing this to the result.assets[0].uri also?
httpMethod: 'POST',
uploadType: FileSystem.FileSystemUploadType.MULTIPART,
fieldName: 'file',
fileName: 'Test', // I added this
});

setUploading(false);
};
Я думаю, проблема в том, где он получает URI? Я пробовал все виды, но, похоже, это не работает. Самое близкое, что у меня есть, находится выше, и оно вроде загружается, но на сервере ничего нет. Должно ли там быть имя файла?
Есть этот бит, который сохраняет изображение, но, кажется, присваивает другую информацию, и я думаю, что его нужно как-то включить, но я не могу понять, где:

Код: Выделить всё

const saveImage = async (uri: string) => {
await ensureDirExists();
const filename = new Date().getTime() + '.jpeg';
const dest = imgDir + filename;
await FileSystem.copyAsync({ from: uri, to: dest });
setImages([...images, dest]); // I am only sending selected file so no need to save it
};
Правильно ли я это делаю? Кажется, я пробовал много разных подходов, таких как выборка, аксиомы и blob, но этот показался лучшим.
Код PHP такой же, как код в примере, но вот он: - Любая помощь будет принята с благодарностью

Подробнее здесь: https://stackoverflow.com/questions/773 ... age-picker
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»