Я работаю над веб-страницей, которая прекрасно работает в большинстве браузеров, но не в Opera Mini. К сожалению, у меня проблемы с загрузкой файла. Я пытался решить это часами. У меня есть этот javascript:
$("body").append('<form id="opera-mini-uploader" method="POST" enctype="multipart/form-data"><input type="hidden" name="hiddenValues" id="hidden-values" value=""><input type="file" name="src"><input type="submit" id="upload-opera-mini" name="upload-opera-mini" value="upload"></form>');
$("#opera-mini-uploader").submit(function() {
$("#hidden-values").val(JSON.stringify({
"product-title": $("#product-title").val(),
"product-description": $("#product-description").val(),
"category-id": $("#category-id").val(),
"product-price": $("#product-price").val(),
"varsity": $("#varsity").val(),
"campus-of-varsity": $("#campus-of-varsity").val(),
"telephone": $("#telephone").val(),
"repeat-telephone": $("#repeat-telephone").val(),
"iagree": $("#iagree").prop("checked")
}));
});
Он создает форму с вводом файла и обрабатывает submit для сохранения других свойств при загрузке файла. Свойства сохраняются красиво, но файл не загружается... Форма появляется в конце тела, когда я выбираю файл и пытаюсь его загрузить, он не выполняется. Я не вижу ошибок, но файл также не загружается. Мой вопрос: что я делаю неправильно? Как мне реализовать загрузку файла, чтобы на самом деле иметь некоторые файлы на сервере? Загрузка файлов работает для других браузеров, но здесь я создал для них отдельную версию, потому что Opera Mini не может выполнять свои причудливые функции.
После долгого эксперимента, я нашел ответ:
$("body").append('<form id="opera-mini-uploader" method="POST" enctype="multipart/form-data"><input type="hidden" name="hiddenValues" id="hidden-values" value=""><input type="file" name="src"><input type="submit" id="upload-opera-mini" name="upload-opera-mini" value="upload"></form>');
Приведенный выше код создает form
, но событие submit
не будет привязано к ней. Вместо этого поколения я решил протестировать его, добавив его как HTML, например:
<form id="opera-mini-uploader" method="POST" enctype="multipart/form-data"><input type="hidden" name="hiddenValues" id="hidden-values" value=""><input type="file" name="src"><input type="submit" id="upload-opera-mini" name="upload-opera-mini" value="upload"></form>
и он работал как шарм без дополнительных изменений.
$_FILE
вашего PHP-файла пуст?