некая форма HTML: <form id="image"> <div class="modal-body"> {% for file in str.base %} {% if file.type_string == 5 %} <p>{{ file.info_string }}</p> <div class="col-md-12"> <div class="section"> <label class="field prepend-icon append-button file"><span class="button btn-primary">Выбрать файл</span> <input id="{{ file.id_string }}" type="file" name="file_up" onchange="document.getElementById('{{ file.name_string }}').value = this.value;" class="gui-file"> <input id="{{ file.name_string }}" type="text" name="{{ file.name_string }}" placeholder="Выбрать файл" class="gui-input"> <label class="field-icon"><i class="fa fa-upload"></i></label> </label> </div> </div> {% endif %} {% endfor %} <hr> </div> <div class="modal-footer koks"> <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button> <button type="button" class="btn btn-primary" id="ModalExe" data-id-module="{{ str.module_id }}" data-file="{{ str.module_file }}" data-name="{{ str.module_name }}" data-id="{{ str.id }}">Загрузить</button> </div> </form> Код (Javascript): $('#ModalExe' ).on("click.koks",function( ) { $('#image:input ').each(function() { alert($(this).attr('name')); }); var obj = $('#image').serialize(); var nameModal = $('#ModalExe').attr('data-name'); var fileModal = $('#ModalExe').attr('data-file'); var idModule = $('#ModalExe').attr('data-id-module'); router(root+'admin/modules/ajax/addmodal', {"base":obj, "flag":1, "nameModal": nameModal, "fileModal": fileModal, "idModule": idModule}, 'resultModal'); }); некий скрипт для передачи данных на аякс я чёто уже по инета перерыл, ajaxForm не подходит в этом решении нужно через ajax втупую решить и не могу понять как передать файлы... Он мне имена передаёт постом, а массив $_FILES в php пуст ёкарный бабай ((( Поставьте плиз на путь истины мну по загрузке файлов, впервый раз решаю эту задачу и чё то она отказывается поддаваться решению.
Код (Text): <form id="image" enctype="multipart/form-data"> Не спасло также массив files пустой --- Добавлено --- PHP: echo '<br>'; echo '<pre>'; echo $_POST['base']; echo '</pre>'; $uploaddir = '/var/www/uploads/'; $uploadfile = $uploaddir . basename($_FILES['file_up']['name']); echo '<pre>'; if (move_uploaded_file($_FILES['file_up']['tmp_name'], $uploadfile)) { echo "Файл корректен и был успешно загружен.\n"; } else { echo "Возможная атака с помощью файловой загрузки!\n"; } echo 'Некоторая отладочная информация:'; print_r($_FILES); print "</pre>"; exit(); Вот так в php пытаюсь просмотреть, но пусто --- Добавлено --- $_POST есть а $_FILES пустой --- Добавлено --- а нашёл http://stackoverflow.com/questions/21044798/how-to-use-formdata-for-ajax-file-upload --- Добавлено --- но чёто js ругаетса собака Код (Javascript): var form = $('form')[0]; // You need to use standart javascript object here var formData = new FormData(form);
Не хрена не грузит чёто уже даже просто на один экземпляр повесил не фига не грузит ёпт какой то HTML: <label class="field prepend-icon append-button file"><span class="button btn-primary">Выбрать файл</span> <input id="{{ file.id_string }}" type="file" name="file_up" onchange="pussy(), document.getElementById('{{ file.name_string }}').value = this.value;" class="pussy gui-file"> <input id="{{ file.name_string }}" type="text" name="{{ file.name_string }}" placeholder="Выбрать файл" class="gui-input"> <label class="field-icon"><i class="fa fa-upload"></i></label> </label> Код (Javascript): function pussy() { //alert('hello'); //var data = this.value; var name = this.name; var data = new FormData(); data.append('file', this.files[0]); $result = ajaxFunc(root+'admin/modules/ajax/add-files',{"data":data,"name":name}); alert($result); }
Код (Javascript): function pussy() { //alert('hello'); //var data = this.value; var name = this.name; var data = new FormData(); data.append('file', this.file); $.ajax({ url: root+'admin/modules/ajax/add-files', type: 'POST', data: {"data":data,"name":name}, processData: false, contentType: false, //dataType: 'json', success: function(result) { alert(result); }, error: function (result) { alert(result); } }); //$result = ajaxFunc(root+'admin/modules/ajax/add-files',{}); Сделал так вхожу в обработчик но $_FILES пустой ((( --- Добавлено --- @Ganzal да ржи хоть. Можешь хоть гавном закидать, да чё хочешь делай... Я сижу с утра втупить не могу как мне ajax $_FILES отправить с.ка Я чувствую что косяк вот в этой строчке Код (Javascript): data.append('file', this.file); Но я не знаю что туда написать а гугл не спасает перелопатил уже всё даже буржуев их решение под конкретную задачу, а у меня не срасты с их решением...
@Ganzal мне пофигу на родента, у меня висит я массив $_FILES пустой ловлю! т.е по доке я делаю всё верно но какого то хера ловлю пустой пост что за бред ? --- Добавлено --- @Ganzal знаешь я уже как тока не сделал но просто пустой массив с $_FILES меня уже просто бесит, что не так я не пойму, дело в херовой документации если ты знаешь где что почитать что должно помочь, кидай почитаю. Ты же тупо срёшь сейчас, не стыдно гуру?
Ох, если тебе пофигу на родента, то чего ты регулярно устраиваешь истерики под его постами? Если было бы пофигу - проходил бы мимо. Но истерики есть. Следовательно твоё утверждение про пофигу - ложь. Не лги себе. То ты шашкой машешь как всезнающий, то залипаешь как баран перед новыми воротами. Пустышка. С чего мне стыдно-то должно быть? С того что ты сложил о себе определенное мнение на отдельно взятом ресурсе на просторах интернета? Это тебе стыдно должно быть, разве не? Ты же за помощью приходишь к тем же ребятам, перед которыми махал писькой. И у нас тут наступает когнитивный диссонанс - вроде парень опускает нас и задавливает знаниями, а вроде задаёт тупейшие вопросы и плавает в материале. На таких клоунов безусловно весело посмотреть. Вот и ржу.
@Ganzal понятно всё с тобой. Ты херовый человек сам по себе, я сделал мнение о тебе, я шашкой машу когда людям подсказывают хрень лютую. И извиняюсь когда сам был не прав, да будет тебе известно вот родент сегодня умную вещь сказал я ему лайк поставил.
@askanim да не со мной тебе должно быть понятно. У тебя задачка в JavaScript. Его понимать надо, не меня. Вечно тебе приходиться носом тыкать...
@Ganzal Да я не понимаю потому что не могу найти, решение своей задачи, в jquery почему то не выходит в гугле на оф доку, по formdata
Запятые, расставляет, пвсевдорандом. капец поколение выросло... --- Добавлено --- Дал тебе плюшку на месяц за уровень русского языка. Наслаждайся.
@Ganzal эм ? Бан чтоли опять? --- Добавлено --- Тема закрыта разобрался чуть позже закину код как делать закачку файлов через ajax form data чтобы не мучался так никто как я сегодня =_=
@Ganzal За что превышу порог ?) За то что спрашиваю на форуме php в разделе для новичков, или по факту говорю кому когда он не прав ? Я даже не матерюсь тока завуалированно, с точечками либо с подменой букв. Я не считаю себя гуру, просто когда вижу околесицу говорю как есть, и плевать что с русским проблемы как могу так и изъясняюсь может я не русский, это что россизм ?
Вот пример ещё один http://code.runnable.com/V6gwIJkQdVRyqDLc/ PHP: <?php header('Content-Type: text/html; charset=utf-8'); if ($_SERVER['REQUEST_METHOD'] == 'POST') { var_export($_FILES); echo PHP_EOL; var_export($_POST); exit(); } ?> <!DOCTYPE html> <html> <head> <title></title> <script type="text/javascript" src="https://code.jquery.com/jquery-3.1.0.js"></script> </head> <body> <form id="form"> <input type="file" id="file" name="file"> <input type="text" id="test" name="test" value="Hello word!"> <input type="submit" name="Upload"> </form> <pre id="result">no result</pre> <script type="text/javascript"> $(function() { $( "#form" ).submit(function( event ) { var formData = new FormData(); formData.append('test', $("#test").val()); formData.append('file', $("#file")[0].files[0]); var jqxhr = $.ajax({ method: "POST", url: "t.php", data: formData, processData: false, contentType: false }) .done(function(data) { $("#result").html(data); }) .fail(function() { alert( "error" ); }); event.preventDefault(); }); }); </script> </body> </html>
@denis01 у меня с val не прошло прошло только с Код (Javascript): $("#file")[0].files[0] и $_FILES не пустой пришёл, уже стока про эт опрочетал так что говорю же решил вопрос, только у меня много инпутов с файлами и мне нужно их собрать все, так что я сделал вот так. HTML: $('#ModalExe' ).on("click",function( ) { var formData = new FormData(document.getElementById('image')[0]); // Create an arbitrary FormData instance formData.append('files', $('input[type=file]')[0].files[0]); jQuery.ajax(root+'admin/modules/ajax/add-files', { processData: false, contentType: false, type: "POST", data: formData, success: function(result) { alert(result); }, error: function (result) { alert(result); } }); }); --- Добавлено --- но цепляет тока один из-за того что вот эта строчка для одного благодоря 0 в массиве вопрос как цепануть весь массив Код (Javascript): $('input[type=file]')[0].files[0] Я не знаю на что её заменить чтобы цепануть весь массив... сделал так синтаксическая ошибка. Код (Javascript): $('input[type=file]').files --- Добавлено ---@Ganzal вот на что на что а на баллы мне пофигу до колени, у меня другие интересы в жизни. Вот бан это конечно не приятно я не пообщаюсь, и не подскажу кому что нибудь да и сам не спрошу чего не знаю.
Просто превысишь порог штрафных баллов. Оно само тебя заблокирует. Моя задача только баллов тебе подсыпать. И я буду делать это по возможности. Хуёво разговариваешь на родном языке - неуважение ко всем собеседникам. Пыщ балл. С пеной у рта истеришь в целом, и в адрес родента в частности - ноу фёрвер экшн, ибо это весело.
@Ganzal порой кажется, что тебе лет 15, веселишься с того с чего ржут дети. --- Добавлено --- @denis01 да
@askanim я могу понять, когда запятые опускают, если это не меняет смысла сообщения. Но ты реальный аутист, раз расставил запятые просто на отъебитесь. Ты перековеркал смысл своей фразы. Не-ни путаешь, дефисы в то-либо-нибудь пропускаешь. Ты школу-то закончить не забыл?
@denis01 вот сейчас пришёл к результату что я получаю хотя бы один теперь надо думать как два и более. Но я рад у меня есть результат --- Добавлено --- @Ganzal мне всегда было пофигу на русский язык, у меня было 4 по инглишу и 5 по алгебре, меня это устраивало. --- Добавлено --- @Ganzal геометрия мне не нравилась поэтмоу за заученные теоремы получил твёрдую тройку. А вот за русский железно был всегда трояк, но по литературе имел всегда 5, читаю оч хорошо
тут очень хорошо описано http://incode.pro/jquery/ajax-na-praktike-zagruzka-fajlov.html Нервы в инете трепать, пустая трата времени