Пишу загрузку файлов из всплывающей формы, однако, файл не передается в скрипт загрузки
AJAX:
var form_data = new FormData();
var uploadFile = $("#attachFile_qo")[0].files[0];
form_data.append('file_upload', uploadFile);
alert(form_data);
$.ajax({
type: "POST",
url: "uploadFile.php",
dataType: 'json',
cache: false,
contentType: false,
processData: false,
data: form_data,
success: function(result) {
alert("УСПЕХ");
},
error: function(result) {
alert("ERROR");
}
});
uploadFile.php
<?php defined('_JEXEC') or die;
require_once("PHPDebug.php");
jimport('joomla.filesystem.file');
jimport('joomla.filesystem.folder');
$debug = new PHPDebug();
$debug->debug("POST:", $_POST['file_upload']);
if(isset($_POST['file_upload'])) {
$uploadPath = JPATH_SITE . '/media/img_free';
if(!JFolder::exists($uploadPath))
JFolder::create($uploadPath);
$file = $_FILES;
$file['name'] = JFile::makeSafe($file['name']);
if(isset($file['name'])) {
$filepath = JPath::clean($uploadPath . '/' . strtolower($file['name']));
JFile::upload( $file['tmp_name'], $filepath );
}
} ?>
При этом, в алерт выводится [object FormData], ну или имя файла, если выводить так: alert($("#attachFile_qo")[0].files[0].name);
Так же в алерт выводится Успех, но при этом файл не загружается и phpdebug в консоль ничего не выводит, как будто скрипт uploadFile.php вообще не обрабатывается.
В чем ошибка и как исправить?