в POST переменную не передается файл php

252
21 марта 2017, 14:41

Разметка:

<form id="load-img" enctype="multipart/form-data">
   <ul data-tab="4" class="__tab">
       <li>
            <label class="fileupload1">
                <input id="img-load" type="file" name="img" size="20">
            </label>
       </li>
       <li>
             <input class="load-img-sub" type="submit" name="download">
       </li>
    </ul>
</form>

js:

$("#load-img").submit(function(e) {
    e.preventDefault();
    var img = $("#img-load").val();
    $.post("<?=base_url()?>loadimg.php",{img:img},function(data){
        console.log(data);
    });
});

код php:

if ($_POST)  {
$name = $_POST['img']['name'];
$tmp = $_POST['img']['tmp_name'];
$path = $_SERVER['DOCUMENT_ROOT']."/img/".$_POST["img"]["name"];
if ($_POST["img"]["size"] > 1024*3*1024)
{
    echo (">3mb");
    exit;
}
if (move_uploaded_file($tmp,$path)){
    print("Done! File saved...");
} else {
    die("Error on uploading! tmpName=" . $tmp . ' . Name=' . $name .
        '. path=' . $path );
}
} else {
    print_r ('no_post');
}

console.log выводит :Error on uploading! tmpName=C . Name=C. path=Z:/home/test1.ru/subdomain/img/C. Какая еще C?? Весь день с этой проблемой просидел

Answer 1

Ошибка была в js при отправке формы. Вот код js:

$("#load-img").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
var formData = new FormData($(this)[0]);
    $.ajax({
        url: "/user/uploadst",
        type: 'POST',
        data: formData,
        async: false,
        cache: false,
        contentType: false,
        processData: false,
        success: function (returndata) {
            console.log(returndata);
        }
    });
});

php:

if($_FILES)  {
    $name = $_FILES['img']['name'];
    $tmp = $_FILES['img']['tmp_name'];
    $path = $_SERVER['DOCUMENT_ROOT']."/static/img/product/".$_FILES["img"]["name"];
    if($_FILES["img"]["size"] > 1024*3*1024)
    {
        echo (">3mb");
        exit;
    }
    if ( ($_FILES["img"]["type"] == "image/png")
        || ($_FILES["img"]["type"] == "image/jpeg")
        || ($_FILES["img"]["type"] == "image/jpg")
        || ($_FILES["img"]["type"] == "image/pjpeg") ) {
        if(move_uploaded_file($tmp,$path)){
            print("Done! File saved...");
        } else {
            die("Error on uploading! tmpName=" . $tmp . ' . Name=' . $name .
                '. path=' . $path );
        }
    }
} else {
    print_r ($_FILES["img"]["type"]. 'no_post');
}
READ ALSO
Хранение ключа в программе

Хранение ключа в программе

Можно ли хранить ключ в открытом виде в виде переменной при выполнении программы? То есть, есть зашифрованные AES при помощи ключа юзера данныеПользователь...

273
Как запустить exe файл на другой машине

Как запустить exe файл на другой машине

Я создал программку на с++ в visual studio, скинул всю программку на другую машину в которой отсутствует visual studio, и при запуске exe файлавыдало что...

287
Сортировка массива чисел. c++ Form

Сортировка массива чисел. c++ Form

В массиве содержится не менее 10 записей (поля записи определить самостоятельно), отсортировать (по неубыванию) массив методом корзинной сортировкиНайти...

357
Решение задачи не проходит

Решение задачи не проходит

Есть задача, я её написал, но она не проходит, уверен, что правильно написалПомогите пожалуйста!

236