Если var_dump($target_file);
возвращает /home/aadhunik/public_html/pdf
, file_exists
проверяет, существует ли этот каталог /pdf/
, что он и делает.
Кажется, проблема в том, что $_FILES["fileToUpload"]["name"]
не установлен.
Я бы начал отладку с проверки $_FILES
с помощью var_dump($_FILES);
- выясните, где это имя файла на самом деле.
Причин может быть много, но это не проблема с file_exists
Если $_FILES
пусто, проверьте, что форма имеет enctype="multipart/form-data"
и что загрузка файлов разрешена на сервер (в php.ini у вас должно быть file_uploads=1
. Если он не пустой, настройте вашкод для использования правильных данных, например, $_FILES['some_file']['name']
Обновление:
Таким образом, вы не можете загружать файлы с помощью ajax. Используйте новый HTML5 FormData
объект вместо сериализации JQuery. См. эту ссылку для получения дополнительной информации: Как я могу загружать файлы асинхронно?
Имейте в виду, что это поддерживается только в новых браузерах. Некоторые предлагают использовать iFrames или одиниз множества библиотек, доступных для этого. JQuery Ajax File Upload
Примерно так:
<script>
$("#contactForm").submit(function(e){
e.preventDefault();
$('input[type="submit"]').val("Sending Message...");
$.ajax({
type: "POST",
url: "backend/career.php",
data: new FormData($(this)[0]),
cache: false,
contentType: false,
processData: false
}).done(function (data){
console.log(data);
$('input[type="submit"]').removeClass('btn-primary');
$('input[type="submit"]').addClass('btn-success');
$('input[type="submit"]').val("Message Sent...");
$("#contactForm").closest('form').find("input[type='text'],input[type='number'],input[type='email'],input[type='file'], textarea, select").val("");
}).fail(function(data){
console.log(data);
$('input[type="submit"]').removeClass('btn-primary');
$('input[type="submit"]').addClass('btn-danger');
$('input[type="submit"]').val("Sending Failed...");
$("#contactForm").closest('form').find("input[type='text'],input[type='number'],input[type='email'],input[type='file'], textarea, select").val("");
});
});
</script>