Проблема с загрузкой уже загруженного файла с повторяющимся именем

Привет,
Я столкнулся с некоторыми проблемами при выполнении этой задачи программирования в моем проекте. Когда я загружаю любой файл из браузера, используя учетную запись «Admin» . Затем файл успешно загружен, и я также могу видеть этот файл в браузере. Точно так же, когда я проверяю путь «/var/www/owncloud/data/admin/files/myfile» , мой файл также присутствует там. Хорошо ….
Теперь важно то, что я внес некоторые изменения в этот файл. Имеется в виду, что я перехожу по пути и вносю некоторые изменения в этот файл и сохраняю его под новым именем в том же пути, где находится загруженный в данный момент файл.
Чего я хочу достичь?
Я просто хочу видеть этот обновленный файл по этому пути, а не исходный. Означает, что хочу удалить исходный файл. Но мне не показывают новый обновленный файл из браузера.
Как я могу это сделать?

Спасибо


Вы имеете в виду внесение изменений непосредственно в папка/var/www/owncloud/data в системе?


Привет,
Спасибо за ответ,

Изменяется напрямую означает, что если мы внесем некоторые поправки в пользу пользователя, то нам нужно повторно загрузить обновленный файл из «/var/www/owncloud/data».

Спасибо


Привет,

это не отвечает на мой вопрос выше. Вы заходите в папку/var/www/owncloud/data и вносите изменения в файлы там?


Привет,
На самом деле я делаю это программно. Мы пишем следующий код в файл ‘upload.php’, когда файл загружается, затем в это время в соответствии со следующим кодом мы сначала переходим (не физически, а через программирование) в базу данных вошедшего в систему пользователя, а затем делаем некоторые изменения в этом файле в соответствии с нашей желаемой ситуацией (уже обсуждаемой). Мы успешно справились с этой задачей, и новый файл также успешно создан. Код приведен ниже:

  $ UNAME =  OC_User :: getUser ();/var/www/owncloud/data/$ UNAME/files/uploadedfiles   

Например:
пользователь загружает файл с именем «abc», и файл сохраняется в базе данных пользователя, как это делает ownCloud, затем в соответствии с приведенным выше код, мы переходим к пути к базе данных пользователей и вносим некоторые изменения, и новый обновленный файл создается в этой папке данных «/var/www/owncloud/data/$ UNAME/files/newfile»
.
Теперь, когда я вижу в браузере, что это только оригинальный файл «abc», мне нужно только показать «новый файл»,

Как загрузить «новый файл» на то же действие загрузки, вызванное загрузкой исходного файла ??


Насколько я понимаю, как работает Owncloud, вы не должны изменять файлы напрямую (вне интерфейса) поскольку метаданные файла, хранящиеся в базе данных, не обновляются.

Не могли бы вы просто внести изменения в файл, а затем повторно загрузить его через интерфейс WebDAV Owncloud?


Спасибо за ответ,
В моем случае необходимо создать новый файл, поэтому я и делаю это.
Если я удалю исходный файл, моя задача на 20% завершится.
Но как я могу повторно загрузить новый обновленный файл из уже вызванного действия загрузки?


Вы можете использовать WebDAV для этой задачи, вы можете запустить сканирование файла после действие или вы можете сделать это в приложении ownCloud (в этом случае вы также должны использовать конечную точку WebDAV).


Если вы используете Webdav, сканирование файлов не требуется (полагаться на сканирование файлов в целом — плохая идея).

Если вы программируете приложение ownCloud на PHP, используйте API файловой системы ownCloud: OC :: $ server-> getUserFolder ($ userId) , который дает вам экземпляр https://doc.owncloud.org/api/classes/OCP.Files.Folder.html.

OC :: $ sevrer-> getUserFolder ($ userId) -> get ($ pathToParentFolderOfNewFile) -> newFile () -> putContent ($ data) (см. https://doc.owncloud. org/api/classes/OCP.Files.File.html # method_putContent)

Вы также можете заменить putContent на fopen если вместо этого вам нужно стримить.

Надеюсь, это поможет.


Привет, я пытался найти полный пример использования WebDAV, но я не нашел, пожалуйста, предложите мне пример.

Спасибо


Привет, пожалуйста, направьте меня к точной точке. Я знаю, что нужно добавить фрагмент кода в файл «upload.php». Но не знаю, что это за код, и не знаю, куда писать код в файле uplaod.php. Предположим, файл находится в папке данных
$ file =/var/www/ownCloud/data/admin/files/fileB

Теперь какой код для загрузки этого файла (учитывая, что в той же папке находится файлA, поэтому необходимо удалить файлA и заменить его на файлB). Важно то, что событие загрузки уже вызвано для загрузки файла А, поэтому в том же действии мы должны написать код для замены fileA на fileB.

Надеюсь, теперь я завершил свое полное заявление.

Спасибо

Оцените статью
techsly.ru
Добавить комментарий