Невозможно загрузить файлы с помощью uploadify после обновления PHP (5 -> 7) ⇐ Jquery
-
Гость
Невозможно загрузить файлы с помощью uploadify после обновления PHP (5 -> 7)
Codeigniter имеет версию 3.1.13. PHP версии 7.4.
Я не создавал этот сайт, но мне придется поддерживать его в течение еще одного года. Мой хост недавно обновил PHP с 5.4 до 7.x, и с тех пор я больше не могу загружать файлы на свой сайт codeignter с помощью uploadify. Он используется для отображения файла , который позволит вам выбирать и загружать файлы. После обновления вход пропал. Проверка сайта в инструментах разработки показывает, что входные данные есть, но они имеют встроенный стиль с прикрепленным display:none.
Я просмотрел все файлы JavaScript, контроллеры и все в поисках того, где применяется этот стиль. В исходном коде нет атрибута style.
Загрузить изображение Загрузить изображения: Загрузить Очистить очередь
Я почти уверен, что это связано с обновлением PHP, но не знаю, почему и как это исправить. Вот функция загрузки:
$('#userfile').uploadify({ «загрузчик»: global.base + «assets/_js/uploadify.swf», 'скрипт': global.base + 'upload/do_upload', 'scriptData': { 'тип': global.section }, 'cancelImg': global.base + 'assets/_images/cancel.png', 'buttonImg': global.base + 'assets/_images/bt-browse.gif', «авто»: ложь, 'мульти': правда, 'scriptAccess': 'всегда', 'wmode': 'прозрачный', 'fileExt': '*.jpg;*.gif;*.png', 'fileDesc': 'файлы изображений', 'onSelectOnce': function() { $('#img-upload a.btn_upload, #img-upload a.btn_clear').show(); }, 'onCancel': function(e, qID, f, d) { if (d.fileCount == 0) $('#img-upload a.btn_upload, #img-upload a.btn_clear').hide(); }, 'onComplete': add_pics, //'onError': show_error, 'onAllComplete': function() { $.post(global.base + 'process/keep_login', {user: global.email }); $('#img-upload a.btn_upload, #img-upload a.btn_clear').hide(); } }); Прошло много лет с тех пор, как я работал с PHP, и лично я никогда не использовал uploadify. Я что-то пропустил? Я не могу вернуться к PHP 5 на своем хосте. Почему этот ввод получает атрибут стиля, примененный с помощью display:none?
РЕДАКТИРОВАТЬ: я заметил, что функция uploadify ссылается на assets/_js/uploadify.swf, который является Flash. Я предполагаю, что флэш-память больше не поддерживается, поэтому она не будет работать. Есть ли простая замена? Я думаю, мне не придется менять функцию doUpload, просто по-другому управлять вводом?
РЕДАКТИРОВАТЬ: Используя инструменты разработки, я удалил стиль display:none из ввода, и когда я попытался выбрать файл и нажать «Загрузить», я получаю ошибку: /assets/_js /admin.js. Это выглядит так:
$('a.btn_upload').click(function() { вар up_action = $(this).attr('rel'); $('#' + up_action).uploadifyUpload(); /* это строка 270 */ вернуть ложь; }); Функция .uploadifyUpload находится в файле jquery.upload.js и выглядит следующим образом:
uploadifyUpload: function(b) { а(это).each(function() { document.getElementById(a(this).attr("id") + "Загрузчик").startFileUpload(b, false) }) }
Codeigniter имеет версию 3.1.13. PHP версии 7.4.
Я не создавал этот сайт, но мне придется поддерживать его в течение еще одного года. Мой хост недавно обновил PHP с 5.4 до 7.x, и с тех пор я больше не могу загружать файлы на свой сайт codeignter с помощью uploadify. Он используется для отображения файла , который позволит вам выбирать и загружать файлы. После обновления вход пропал. Проверка сайта в инструментах разработки показывает, что входные данные есть, но они имеют встроенный стиль с прикрепленным display:none.
Я просмотрел все файлы JavaScript, контроллеры и все в поисках того, где применяется этот стиль. В исходном коде нет атрибута style.
Загрузить изображение Загрузить изображения: Загрузить Очистить очередь
Я почти уверен, что это связано с обновлением PHP, но не знаю, почему и как это исправить. Вот функция загрузки:
$('#userfile').uploadify({ «загрузчик»: global.base + «assets/_js/uploadify.swf», 'скрипт': global.base + 'upload/do_upload', 'scriptData': { 'тип': global.section }, 'cancelImg': global.base + 'assets/_images/cancel.png', 'buttonImg': global.base + 'assets/_images/bt-browse.gif', «авто»: ложь, 'мульти': правда, 'scriptAccess': 'всегда', 'wmode': 'прозрачный', 'fileExt': '*.jpg;*.gif;*.png', 'fileDesc': 'файлы изображений', 'onSelectOnce': function() { $('#img-upload a.btn_upload, #img-upload a.btn_clear').show(); }, 'onCancel': function(e, qID, f, d) { if (d.fileCount == 0) $('#img-upload a.btn_upload, #img-upload a.btn_clear').hide(); }, 'onComplete': add_pics, //'onError': show_error, 'onAllComplete': function() { $.post(global.base + 'process/keep_login', {user: global.email }); $('#img-upload a.btn_upload, #img-upload a.btn_clear').hide(); } }); Прошло много лет с тех пор, как я работал с PHP, и лично я никогда не использовал uploadify. Я что-то пропустил? Я не могу вернуться к PHP 5 на своем хосте. Почему этот ввод получает атрибут стиля, примененный с помощью display:none?
РЕДАКТИРОВАТЬ: я заметил, что функция uploadify ссылается на assets/_js/uploadify.swf, который является Flash. Я предполагаю, что флэш-память больше не поддерживается, поэтому она не будет работать. Есть ли простая замена? Я думаю, мне не придется менять функцию doUpload, просто по-другому управлять вводом?
РЕДАКТИРОВАТЬ: Используя инструменты разработки, я удалил стиль display:none из ввода, и когда я попытался выбрать файл и нажать «Загрузить», я получаю ошибку: /assets/_js /admin.js. Это выглядит так:
$('a.btn_upload').click(function() { вар up_action = $(this).attr('rel'); $('#' + up_action).uploadifyUpload(); /* это строка 270 */ вернуть ложь; }); Функция .uploadifyUpload находится в файле jquery.upload.js и выглядит следующим образом:
uploadifyUpload: function(b) { а(это).each(function() { document.getElementById(a(this).attr("id") + "Загрузчик").startFileUpload(b, false) }) }
Мобильная версия