Сохранение изображения с помощью PHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сохранение изображения с помощью PHP

Сообщение Anonymous »

[*]
Внешний интерфейс (клиентская сторона):

У меня есть веб-приложение, созданное с использованием JavaScript и интерфейсной платформы: React.
[*]
Пользователи могут выбрать файл изображения профиля через поле ввода файла на веб-сайте.
[*]
Загрузка изображения профиля (клиент на сервер):

Я отправляю выбранный файл изображения профиля со стороны клиента в серверный скрипт с помощью запроса POST.
[*]
Код на стороне клиента создает объект FormData и добавляет к нему выбранный файл и соответствующие данные (например, имя пользователя).
[*]
Серверный скрипт (PHP):

На сервере у меня есть PHP-скрипт (storePFP.php), который обрабатывает входящие POST< /strong> запрос.
[*]
Скрипт PHP обрабатывает полученные данные, включая имя пользователя и файл изображения профиля, используя $_FILES[/b] и file_get_contents( 'php://input').
[*]
Скрипт сервера проверяет, существует ли пользователь в базе данных, и, если он найден, генерирует уникальное имя файла для изображения профиля, перемещает загруженный файл в назначенный каталог и записывает сведения об изображении в базу данных.< /п> [*]Отладка и ведение журнала:

Я реализовал операторы регистрации ошибок и отладки в своем PHP-скрипте для регистрации такой информации, как полученные данные JSON, заголовки, файлы и результаты запросов.
[*]
Я проверял потенциальные проблемы, такие как неверные данные запроса, неопределенные переменные или сбои запросов к базе данных.
[*]
Проблемы и вопросы:

Я столкнулся с некоторыми проблемами, связанными с неопределенными переменными ($uploadDirectory, $result ) и результаты запроса к базе данных не соответствуют ожиданиям.
[*]
Я изучил и предоставил отладочную информацию через журналы ошибок.
[*]
Альтернативное хранилище:
Я подумываю, можно ли хранить изображения профиля в другом общедоступном API.
const handleProfilePictureUpload = async (e) => { е.preventDefault(); const fileInput = document.querySelector('#fileInput'); константный файл = fileInput.files[0]; // Проверяем, выбран ли файл если (!файл) { setMessage('Пожалуйста, выберите изображение профиля для загрузки.'); возвращаться; } // Проверяем, поддерживается ли тип файла (gif, png или jpg) constallowedFileTypes = ['image/gif', 'image/png', 'image/jpeg', 'image/jpg']; if (!allowedFileTypes.includes(file.type)) { setMessage('Неверный тип файла. Выберите изображение в формате GIF, PNG, JPG или JPEG.'); возвращаться; } // Устанавливаем URL конечной точки API const URL = 'http://localhost:80/storePFP.php'; пытаться { // Создаем объект FormData для отправки файла const formData = новые FormData(); formData.append('имя пользователя', user.username); formData.append('profilePicture', файл); console.log(formData.get('profilePicture')); // Вызов API для загрузки изображения профиля const ответ = ожидание выборки (url, { метод: 'POST', тело: данные формы, }); константные данные = ждут ответа.json(); console.log(данные); // Проверяем, успешен ли ответ если (ответ.ок) { // Устанавливаем сообщение на основе данных ответа setMessage(data.message); } еще { // Устанавливаем сообщение об ошибке из ответа setMessage(data.message || 'Произошла ошибка при загрузке изображения профиля.'); } } поймать (ошибка) { // Регистрируем и отображаем общее сообщение об ошибке, если во время вызова API возникает исключение console.error('Ошибка загрузки изображения профиля:', error); setMessage('Произошла ошибка при загрузке изображения профиля.'); } }; // HTML-код, возвращаемый Выберите изображение профиля: Загрузить {"success":false,"message":"Неверные данные запроса"

Да, я проверил правильность путей (destinationPath)
Из журнала «Неверные данные запроса я получаю, что в противном случае»

if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (isset($data['username']) && isset($_FILES['profilePicture'])) { ЕЩЕ:
произошло

console.log(formData) вернул:

1.
Файл
[*]
Последнее изменение: 1703941829454
[*]
lastModifiedDate: суббота, 30 декабря 2023 г., 14:10:29 GMT+0100 (Mitteleuropäische Normalzeit) {}
[*]
имя: "361273270047920240_1595864818.jpg"
[*]
размер: 7197
[*]
Введите: «изображение/jpeg»
[*]
webkitRelativePath: ""
[*]
[[Прототип]]: Файл
Ответить

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

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

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

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

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