Intereting Posts
доступ к частной переменной из функции-члена в PHP Looping через MySQL левое соединение в php против 2 отдельных запросов php imagecopyresampled низкого качества Добавить колонку в Magento admin catolog> управлять продуктами Является ли предотвращение XSS и SQL Injection так же просто, как это делает Как выполнить второй запрос PDO mysql в цикле while из другого запроса? Запуск задания cron в CodeIgniter и Hostgator Авторизовать с помощью curl и parse с помощью простого html dom не работает php foreach с многомерным массивом Prestashop Product customizer Вызовите еще один PHP-скрипт и верните элемент управления пользователю до завершения другого скрипта PHP Warning: POST Content-Length из n байтов превышает предел 3145728 байт в Unknown в строке 0 Автоматизация работы на рабочем месте: импорт текста пули PowerPoint в лист Excel Как вытащить друзей пользователя из Facebook (с v 2.0 Facebook Auth) Системы на базе Debian Сессия убита через 30 минут в специальном cron, как переопределить?

загрузить файл через ajax

Я использую 2 файла index.js, upload.php попытаюсь загрузить файл (img) через ajax, и если успех uploadfile_show в div uploadfile_show .
но это не сработает, у меня мало вопросов, а ниже – мой код какого-либо предложения?

Благодарю.

upload.php
1. form enctype еще нужно добавить?
2. if($_FILES) и проверить размер $ _FILES или tmp_name по-прежнему использовать $_FILES ?

 if($_FILES){ $filename = $_FILES['uploadfile']['name']; $filetmp = $_FILES['uploadfile']['tmp_name']; $filesize = $_FILES['uploadfile']['size']; if($filesize < 1000000){ move_uploaded_file($filetmp,'upload/tmp/'.$filename); print" upload success <img src=\"upload/tmp/$filename\"> "; } else{ } } else{ print" <div class=\"uploaddiv\"> <form enctype=\"multipart/form_data\"> <input type=\"type\" name=\"uploadfile\"> <input type=\"submit\" value=\"upload\" class=\"btn\"> </form> </div> "; } print" <div class=\"uploadfile_show\"></div> "; 

index.js
3. Это несколько строк, это правильно?
var uf = $('.uploaddiv form');var fd = new FormData(uf);fd.append('uploadfile', uploadfile);
data: fd,
4. Что я пропустил или не так?

 $('.btn').click(function(){ var uf = $('.uploaddiv form'); var fd = new FormData(uf); fd.append('uploadfile', uploadfile); $.ajax({ type: "POST", url: "upload.php", data: fd, processData:false, contentType: false, success: function(html){ $('.uploadfile_show').append(html); } }); }); 

FormData принимает элемент формы в своем конструкторе, а не объект jQuery, также, когда вы используете ajax для отправки формы, которую вы должны будете предотвратить, чтобы ее действие по умолчанию (то есть preventDefault()

 $('.btn').click(function(e){ e.preventDefault(); var uf = $('.uploaddiv form'); var fd = new FormData(uf[0]); $.ajax({ type: "POST", url: "upload.php", data: fd, processData:false, contentType: false, success: function(html){ $('.uploadfile_show').append(html); } }); });