• Возник вопрос, можно как-то получить путь, куда будет загружать файлы, в случае их аплоада, зная только ID поста ?

    К примеру, у нас есть опубликованный пост, мы получаем его айди и на базе его айди как-то получаем путь, куда он будет загружать файлы ?

    Пытаюсь понять, как с временной папки, переместить файлы, в нужную папку поста ?

Просмотр 13 ответов — с 1 по 13 (всего 13)
  • wildapache, привет.

    Начать стоит с того, что у записей нет своих директорий. Можно хуком upload_dir сделать так, чтобы файлы при загрузке помещались в директорию с ID записи. Это, наверное, самый простой способ.

    Дело в том что я сделал одно, но, забыл про второе !

    К примеру я сделал возможность редактирования поста с аплоадом файлов, которые никак не связанны с его отправкой. То есть пользователь может удалять или добавлять в пределах лимита сколько ему угодно.

    Проблема появилась потом, когда я понял что подобный вариант не может работать — при создании нового поста, а только если пост уже создан, т.е имеет постоянный post_id.

    Теперь я хочу реализовать подобное, но, только при создании нового поста.

    То есть, пользователь заходит, нажимает создать новый пост.

    Далее, он загружает картинки, куда-то перед отправкой самой формы.

    А когда форма отправляется, мы получаем post_id и как-то прикрепляем куда-то закаченные до этого изображения.

    Вот тут как раз я не пойму как нужно сделать, я начала думал нужно создать временную папку, все аплоады нового поста загружаются туда, потом когда пост опубликован, берем его айди и каким-то образом перемещаем-прикрепляем изображения к посту.

    Может можно как-то по другому я просто не пойму как тут правильно сделать.

    Сама суть — загружать файлы до отправки формы. Потому что, если это делаль во время, то нагрузка значительна, проверялось уже. А если до, то практически никакой нагрузки нет. Так как файлы загружаются поочередно.

    wildapache, записи получают свои идентификаторы только после сохранения в БД. Этот процесс можно форсировать немедленным сохранением данных в черновик, тогда записям будут сразу же присваиваться идентификаторы, и дальше ваша логика с загрузкой изображений будет работать как вам надо.

    Не понял, файлы то отправлять нужно ДО того как мы получаем вообще хоть какой-то id

    wildapache, это принципиальное желание так сделать или за этим что-то существенное стоит?

    Да, так как нужно сбавить нагрузку на сервер. Нужно именно такая реализация, потому что пользователь в таком случае может загружать сколько ему угодно, это никак не будет влиять на нагрузку нежели в случае если форма + файлы будут обрабатываться вместе.

    wildapache, так в чём вопрос тогда? Пусть файлы загружаются во временную директорию, после отправки формы, когда будет присвоен идентификатор записи, формируйте директорию на основе этого идентификатора и перемещайте в неё файлы пользователя.

    Дело в том что я хотел из временной папки, после получения айди, каким-то образом начинать их загрузку в директорию аплоада wordpress ту, в которую бы загрузил сам пост.

    То есть, после отправки формы мы получаем айди, потом считываем файлы из временной директории ? Потом не знаю что должно происходить

    wildapache, файлы загружены во временную директорию > пользователь отправил данные > записи присвоен уникальный ID > файлы загружаются в медиафайлы сайта и помещаются в директорию с ID записи. Такая логика вполне работоспособна.

    Вот тут проблема — файлы загружаются в медиафайлы сайта

    Не будет ли это дубликатом загрузки ? т.е получается что файлы просто будут перезагруженны с временной папки (сервера) в постоянную аплоад директорию поста ? т.е выходит вариант так себе — если это так

    • Ответ изменён 5 месяцев, 3 недели назад пользователем wildapache.

    wildapache, самый простой способ — это загрузка файлов в /tmp сервера, а из неё уже дальше, задействуя движок. Без лишней нагрузки там где не надо, и без дублей.

    В любом случае способ нормальной работы такой реализации по идеи должен быть, буду думать как реализовать проще и правильней

    Думаю что придумал как, в прочем не нужно для этого даже временной директории, дело в том что wordpress может загружать аттатчи без привязки к посту ! Если получиться реализовать может отпишу примерно как это работает

Просмотр 13 ответов — с 1 по 13 (всего 13)

Для ответа на тему необходимо авторизоваться.