Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.01.2017, 00:20
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

AJAX $_FILES
ЗДРАВСТВУЙТЕ что удивительно
вот я передаю постом файл
function fileSelectFunc(e) {
        e.stopPropagation();
        e.preventDefault();
        var file = e.target.files || e.dataTransfer.files;
		
		$.ajax({
url: "/server/ajax_php_file.php", // Url to which the request is send
type: "POST",             // Type of request to be send, called as method
data: file[0], // Data sent to server, a set of key/value pairs (i.e. form fields and values)
contentType: false,       // The content type used when sending data to the server.
cache: false,             // To unable request pages to be cached
processData:false,        // To send DOMDocument or non processed data file it is set to false
success: function(data)   // A function to be called if request succeeds
{
if (file[0].type.match('image/*'))
ParseFile(file[0]);
else
e.target.className = '';
}
});

POST: http://imedia.in.ua/server/ajax_php_file.php
В консоли вижу POST [object ]
И постом идет графический файл но в Response
print_r($_POST);

В обработчике пытаюсь распечатать пост array (0)

Последний раз редактировалось imedia, 03.01.2017 в 21:49.
Ответить с цитированием
  #2 (permalink)  
Старый 03.01.2017, 03:52
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Документацию кто читать будет?
http://fi2.php.net/manual/ru/features.file-upload.php
Ответить с цитированием
  #3 (permalink)  
Старый 03.01.2017, 19:02
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

это все я читал но я в тупике, ведь я не формой передаю а в javascript коде у меня уже встречается файл поэтому я не могу проверить if isset $_FILES['userfile']['name'] а проверка на $_POST и на $_FILES дает array(0)

В то время как файл в посте есть как его принять?
Ответить с цитированием
  #4 (permalink)  
Старый 03.01.2017, 19:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от imedia
ведь я не формой передаю а в javascript коде
Какая хрен разница - РНР помещает данные по загруженным файлам в массив $_FILES, где в руководстве написано, что эти данные можно найти в $_POST?

Мало читать, нужно вникать в то, что пишется.
Ответить с цитированием
  #5 (permalink)  
Старый 03.01.2017, 20:18
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

Есть firebug в нем в ячейке POST показано что файл есть то есть он идет но PHP его не видит в массиве $_FILES, вы реально можете сказать как его в этом случае получить?

http://test.imedia.in.ua/main_contro...ages/portfolio
Ответить с цитированием
  #6 (permalink)  
Старый 03.01.2017, 20:28
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Я вам еще раз повторяю, что файлы клиент может отправить только методом POST, у метода GET на это не хватит размера под него отведенного. А РНР возвращает информацию о загруженных по HTTP файлах ТОЛЬКО в массив $_FILES.

Если этот массив пуст, значит файл не получен сервером. Если читали руководство, там все написано - ошибки, как их получить и т.п. Проверяйте.
Ответить с цитированием
  #7 (permalink)  
Старый 03.01.2017, 20:44
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

Приведите пожалуйста пример, прошу вас, я там не могу найти как проверить почему сервер файл не получает
Ответить с цитированием
  #8 (permalink)  
Старый 03.01.2017, 20:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Отправлять надо как следует, ну и конечно анализировать ошибки, а не гадать на кофейной гуще.

<?
if($_POST) {
    exit('POST '.print_r($_POST, 1).'FILES '.print_r($_FILES, 1));
}
?>
<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script> 
$(function() {
    $('form').on('submit', function(e){
        e.preventDefault();
        $.ajax({
            url: this.action,
            type: 'POST',
            contentType: false,
            processData: false,
            data: new FormData(this),
            dataType: 'text',
            success: function(data){
                if(!!data){
                    alert(data);
                }
            }
        });
    });
});
</script>     
</head> 

<body>
    <form action="" method="post" enctype="multipart/form-data">
      <input type="text" name="file_name" value="name_file"/><br/>
      <input type="file" name="file_body"/><br/>
      <input type="submit" value="Отправить"/>
    </form>
</body> 
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 03.01.2017, 21:47
Профессор
Отправить личное сообщение для imedia Посмотреть профиль Найти все сообщения от imedia
 
Регистрация: 20.05.2014
Сообщений: 292

Формы нет никакой просто файл уже в коде javascript
как переменная как я выше написал file[0]
Ответить с цитированием
  #10 (permalink)  
Старый 03.01.2017, 21:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

А если только поле, то, отправлять тоже надо по уму, к примеру:

var data = new FormData();
data.append(this.name, this.files[0]);
//....
data: data,


где this ссылка на поле.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка формы после ajax проверки ShutTap Общие вопросы Javascript 15 08.04.2016 11:46
Проблема с AJAX Dim@ AJAX и COMET 4 16.09.2012 22:52
Ajax таблица gofkane Работа 1 26.09.2011 18:26
Ajax таблица gofkane Работа 0 25.09.2011 11:53
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57