Я также пытаюсь использовать Zend_File_Transfer_Adapter_Http , но я немного
путать в чем разница между setDestination и
цель из фильтра Rename и, если необходимо, использовать его.
setDestination()
устарел, и вместо него следует использовать фильтр Rename
. Если у вас установлен фильтр Rename
, он переопределит пункт назначения. В противном случае, нет большой разницы. Основное отличие состоит в том, что фильтр Rename
может переименовывать файл, где setDestination
сохраняет исходное имя файла, как оно было на ПК пользователя, и только перемещает его в место назначения. Это может привести к тому, что существующие файлы будут перезаписаны или кто-то может разбить файл другого пользователя, если вы не дадите им аккуратного названия.
Нужно ли конвертировать файл в каталог tmp и затем переместить его в
мой другой основной, а затем удалить оригинальный?
Лично я бы не пытался конвертировать файл по мере его загрузки. Хотя преобразование может быть быстрым во многих случаях, что произойдет, если было загружено относительно большое видео, и для его кодирования потребуется еще 4 минуты? Вы не хотите, чтобы пользователь завис в ожидании, задаваясь вопросом, что происходит во время преобразования.
Я бы загружал файлы, копировал их во временную папку, где они будут преобразованы, а затем перемещены в исходную папку. Это добавляет сложности, конечно.
Если вы хотите конвертировать видео на лету по мере их загрузки, я могу даже не использовать Zend_File_Transfer_Adapter_Http
вообще. Вместо этого используйте $_FILES
superglobal для доступа к $_FILES['videofile']['tmp_name']
и попросите ffmpeg
преобразовать этот файл и просто записать вывод в конечный пункт назначения или временный пункт назначения, а затем переместить его после завершения преобразования. Файлы, загруженные в PHP, автоматически удаляются, когда запрос завершается, если вы не позвоните move_uploaded_file
или не сделаете что-нибудь вручную, чтобы записать временный файл в постоянное местоположение.
Нет ли способа сохранить оригинальный файл во временном каталоге
временно, пока он не будет преобразован, а затем он будет автоматически
удалить себя?
Да, если вы идете без Zend_File_Transfer
. Загруженный файл автоматически находится во временном каталоге до тех пор, пока не закончится запрос PHP Если вы выполняете преобразование на лету, исходный временный файл автоматически удаляется после завершения работы PHP.
Надеюсь, это немного прояснит для вас.