Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ajax загрузка файла
 
 автор: tima2010   (17.04.2012 в 10:25)   письмо автору
 
 

Привет! Решил попробовать сделать загрузку файлов через AJAX. Как обычно попал в ступор.

Пример моего кода:


Файл index.php

<script>

$(document).ready( function() {

    $('#upload').click( function() {

        $.ajax({
            type: "POST",  
            url: "upload.php",  
            enctype: 'multipart/form-data',
            data: "images="+$('#images').val(),  
            success: function(html){
                $('#result').html(html);
            }
        });  
        return false;  
    });

});

</script>

<div id="result"></div>

<form method="post" enctype="multipart/form-data">
Изображение:<br>
<input type="file" name="images" id="images"><br>
<input type="submit" id="upload" name="upload" value="Загрузить">
</form>


Файл загрузки upload.php
<?php
include 'action.php';
$images_ajax $_REQUEST['images'];
echo 
upload_image($images_ajax);
?>


Файл action.php
<?php
function upload_image$images_ajax='' ) {

    
$name md5(mt_rand(110000000));
    
    
$images $images_ajax['tmp_name']; 
        
    
$images_patch "/upload"

    if(
$images == '') {
        return 
'Вы не выбрали изображение';
    } elseif (
$images_ajax['type'] != 'image/jpg') {
        return 
'Ошибка формата файла.';
    } else {
        
$full_patch $images_patch."/".$name.'.jpg';
        
move_uploaded_file($images$full_patch); 
        return 
'Все ок';
    }
}
?>


Что я сделал не так?

  Ответить  
 
 автор: confirm   (17.04.2012 в 12:11)   письмо автору
 
   для: tima2010   (17.04.2012 в 10:25)
 

Все не так. $('#images').val() - это не бинарные данные, которые необходимо отправлять, это даже не путь к файлу в прямом смысле, это информация браузеров о загружаемом, и у каждого из них свой принцип понимания "и этого хватит" этой информации. А запрос значения атрибута, это никак не загрузка файла с диска.
Это не означает, что нельзя загрузить, можно, но это происходит не так, вообще не так, включая серверную сторону. На заметку.
Нормальная загрузка файлов в Ajax будет возможна в XMLHttpRequest2.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования