удалить файл с Fineuploader не ясно

Я пытаюсь удалить файл с помощью Fineuploader (довольно тривиально, верно?). Вот проблема, с которой я сталкиваюсь: приложение генерирует какой-то v4 uuid (который должен идентифицировать файл) и передает ему сценарий сервера, который отвечает за удаление этого файла.

Согласно этому трекеру проблем: https://github.com/Widen/fine-uploader/issues/733 автор скрипта оговаривает:

вы должны проанализировать этот запрос, получить UUID из пути URI, найти связанный файл, удалить его, а затем ответить кодом 200".

Теперь, как мне получить «связанное имя файла» из этого UUID, не возвращаясь к Javascript, или как мне преобразовать существующие файлы в UUID, чтобы я мог провести сравнение? UUID v4 для меня довольно случайный, поэтому может не быть способа снова получить это значение...

Я знаю, что могу передать другие параметры в запрос на удаление, как описано здесь: Имя файла и расширение, но почему я должен делать это в Javascript? Зачем вообще указывать UUID в запросе? Также я не хочу изменять исходный код приложения...

Может ли кто-нибудь пролить свет на этот вопрос для меня?


person winteck    schedule 29.05.2013    source источник
comment
Как вы храните загруженные файлы? Я думаю, что Fineuploader предполагает использовать UUID в качестве имени файла. Таким образом, было бы легко удалить его снова.   -  person RienNeVaPlu͢s    schedule 29.05.2013
comment
Я храню файлы, сохраняя их исходное имя, я не сохраняю их, меняя их имя на этот UUID.   -  person winteck    schedule 29.05.2013


Ответы (1)


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

person Ray Nicholus    schedule 29.05.2013
comment
Спасибо за быстрый ответ Рэй. 1. В приложении, которое я создаю, перезапись файлов не является проблемой. 2. Как мне получить карту UUID для файлов заранее, поскольку все происходит в режиме реального времени? Я предполагаю, что после сохранения файла на сервере мне также придется добавить запись в какую-то временную базу данных (или другую структуру данных). Как только у меня будет эта карта, удалить ее, конечно, будет проще простого. Если это так, я пойду по этому пути и добавлю решение (PHP) здесь и на Github, чтобы каждый мог извлечь из этого пользу. - person winteck; 29.05.2013
comment
Как вы упомянули, создайте эту карту, поскольку запросы на загрузку (POST) для файлов обрабатываются на стороне сервера. Я планировал обновить пример PHP в ближайшем будущем, чтобы включить поддержку функции удаления файлов. Если ваше приложение поддерживает iOS (iPhone, iPad, iPod), вы обнаружите, что iOS называет каждый загруженный файл как image.jpeg. Итак, это одна из ситуаций, когда вы просто не можете полагаться на имена файлов для идентификации конкретного файла. - person Ray Nicholus; 29.05.2013
comment
...скорее iOS называет каждое загруженное ИЗОБРАЖЕНИЕ как image.jpeg. По какой-то странной причине он добавляет индекс только в конец видео, например, image_01.mov. - person Ray Nicholus; 29.05.2013
comment
Мне удалось удалить файл с помощью моего PHP delete.php, но если удалить не удастся, я хотел бы сообщить об этом моему пользователю. Что должен вернуть delete.php? Я попытался вернуть массив json с успехом == false, но javascript все еще возвращает успех. Есть идеи? - person winteck; 04.06.2013
comment
@winteck Пожалуйста, прочитайте документацию по функции удаления файлов. blog.fineuploader.com/2013/01/delete- загруженный-файл-in-33.html - person Ray Nicholus; 04.06.2013
comment
Понятно! я просто возвращаю заголовок (HTTP/1.0 404 Not Found); из моего файла php в случае сбоя, и это позаботилось об этом. Я должен сказать вам, что это немного неортодоксально, я ожидал вместо этого вернуть объект json, но это работает. Спасибо за сообщение в блоге. - person winteck; 04.06.2013
comment
Я не уверен, почему это кажется неортодоксальным. Если есть проблема с удалением файла, то кажется естественным отразить это в коде состояния ответа. Кстати, код 500 кажется более подходящим в данной ситуации. - person Ray Nicholus; 04.06.2013