Получить путь к аплоад папки зная POST_ID ?
-
Возник вопрос, можно как-то получить путь, куда будет загружать файлы, в случае их аплоада, зная только ID поста ?
К примеру, у нас есть опубликованный пост, мы получаем его айди и на базе его айди как-то получаем путь, куда он будет загружать файлы ?
Пытаюсь понять, как с временной папки, переместить файлы, в нужную папку поста ?
-
wildapache, привет.
Начать стоит с того, что у записей нет своих директорий. Можно хуком
upload_dirсделать так, чтобы файлы при загрузке помещались в директорию с ID записи. Это, наверное, самый простой способ.Дело в том что я сделал одно, но, забыл про второе !
К примеру я сделал возможность редактирования поста с аплоадом файлов, которые никак не связанны с его отправкой. То есть пользователь может удалять или добавлять в пределах лимита сколько ему угодно.
Проблема появилась потом, когда я понял что подобный вариант не может работать — при создании нового поста, а только если пост уже создан, т.е имеет постоянный post_id.
Теперь я хочу реализовать подобное, но, только при создании нового поста.
То есть, пользователь заходит, нажимает создать новый пост.
Далее, он загружает картинки, куда-то перед отправкой самой формы.
А когда форма отправляется, мы получаем post_id и как-то прикрепляем куда-то закаченные до этого изображения.
Вот тут как раз я не пойму как нужно сделать, я начала думал нужно создать временную папку, все аплоады нового поста загружаются туда, потом когда пост опубликован, берем его айди и каким-то образом перемещаем-прикрепляем изображения к посту.
Может можно как-то по другому я просто не пойму как тут правильно сделать.
Сама суть — загружать файлы до отправки формы. Потому что, если это делаль во время, то нагрузка значительна, проверялось уже. А если до, то практически никакой нагрузки нет. Так как файлы загружаются поочередно.
wildapache, записи получают свои идентификаторы только после сохранения в БД. Этот процесс можно форсировать немедленным сохранением данных в черновик, тогда записям будут сразу же присваиваться идентификаторы, и дальше ваша логика с загрузкой изображений будет работать как вам надо.
Не понял, файлы то отправлять нужно ДО того как мы получаем вообще хоть какой-то id
wildapache, это принципиальное желание так сделать или за этим что-то существенное стоит?
Да, так как нужно сбавить нагрузку на сервер. Нужно именно такая реализация, потому что пользователь в таком случае может загружать сколько ему угодно, это никак не будет влиять на нагрузку нежели в случае если форма + файлы будут обрабатываться вместе.
wildapache, так в чём вопрос тогда? Пусть файлы загружаются во временную директорию, после отправки формы, когда будет присвоен идентификатор записи, формируйте директорию на основе этого идентификатора и перемещайте в неё файлы пользователя.
Дело в том что я хотел из временной папки, после получения айди, каким-то образом начинать их загрузку в директорию аплоада wordpress ту, в которую бы загрузил сам пост.
То есть, после отправки формы мы получаем айди, потом считываем файлы из временной директории ? Потом не знаю что должно происходить
wildapache, файлы загружены во временную директорию > пользователь отправил данные > записи присвоен уникальный ID > файлы загружаются в медиафайлы сайта и помещаются в директорию с ID записи. Такая логика вполне работоспособна.
Вот тут проблема — файлы загружаются в медиафайлы сайта
Не будет ли это дубликатом загрузки ? т.е получается что файлы просто будут перезагруженны с временной папки (сервера) в постоянную аплоад директорию поста ? т.е выходит вариант так себе — если это так
-
Ответ изменён 5 месяцев, 3 недели назад пользователем
wildapache.
wildapache, самый простой способ — это загрузка файлов в
/tmpсервера, а из неё уже дальше, задействуя движок. Без лишней нагрузки там где не надо, и без дублей.В любом случае способ нормальной работы такой реализации по идеи должен быть, буду думать как реализовать проще и правильней
Думаю что придумал как, в прочем не нужно для этого даже временной директории, дело в том что wordpress может загружать аттатчи без привязки к посту ! Если получиться реализовать может отпишу примерно как это работает
-
Ответ изменён 5 месяцев, 3 недели назад пользователем
Для ответа на тему необходимо авторизоваться.