Hirdetés

Keresés

Új hozzászólás Aktív témák

  • trisztan94

    őstag

    válasz Tele von Zsinór #15275 üzenetére

    Nagyon jó a post, köszönöm! :R

    Más:

    HTML5-ös ajax fájlfeltöltéssel bénázom nagyon (ez lehet inkább jQuery topikba kellene, de nagyon úgy érzem PHP oldalon van a probléma)

    Tehát egy SO-n 50+ upvote-olt válasz volt, többen is írták, hogy működik..

    Van ez a formom:

    <form name="form-uploadXLS" id="form-uploadXLS" method="post" action="php/uploadXLS.php" enctype="multipart/form-data" >
    <hr />
    <div class="form-group">
    <div class="col-md-12">
    <input type="file" name="xls" class="xls" />
    </div>
    </div>
    <input type="submit" value="Feltöltés" class="btn-uploadXLS" />
    </form>

    Az lenne a lényeg, hogy csak .xls vagy .xlsx fájlt lehessen feltölteni, de az most teljesen mindegy.
    Itt a jQuery kód ami lekezelné:

    $('#form-uploadXLS').on('submit', function (event) {
    console.log("submitted");
    event.preventDefault();
    var formData = new FormData($('#form-uploadXLS')[0]);
    $.ajax({
    url: 'php/uploadXLS.php',
    type: 'POST',
    success: function(data) {
    console.log("success");
    console.log(data);
    },
    error: function(msg) {
    console.log("error");
    console.log(msg);
    },
    data: formData,

    cache: false,
    contentType: false,
    processData: false
    }, 'json');
    });

    És itt a mögötte lévő PHP:

    if(isset($_FILES["xls"]) && $_FILES["xls"]["error"]== UPLOAD_ERR_OK)
    {
    ############ Edit settings ##############
    $UploadDirectory = $_SERVER['SERVER_NAME'].dirname($_SERVER["REQUEST_URI"]) . '/xls/';
    ##########################################

    /*
    Note : You will run into errors or blank page if "memory_limit" or "upload_max_filesize" is set to low in "php.ini".
    Open "php.ini" file, and search for "memory_limit" or "upload_max_filesize" limit
    and set them adequately, also check "post_max_size".
    */

    //check if this is an ajax request
    if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){
    die();
    }

    //allowed file type Server side check
    switch(strtolower($_FILES['xls']['type']))
    {
    //allowed file types
    case 'application/vnd.ms-excel':
    break;
    default:
    die('Nem támogatott fájlformátum!'); //output error
    }

    $File_Name = strtolower($_FILES['xls']['name']);
    $File_Ext = substr($File_Name, strrpos($File_Name, '.')); //get file extention
    $Random_Number = rand(0, 9999999999); //Random number to be added to name.
    $NewFileName = $Random_Number.$File_Ext; //new file name

    if(move_uploaded_file($_FILES['xls']['tmp_name'], $UploadDirectory.$NewFileName ))
    {
    // do other stuff
    die('Sikeres feltöltés!');
    }else{
    die('Hiba történt a feltöltés során!');
    }

    }
    else
    {
    die('wtf');
    }

    (Ezt is SO-ról csórtam)

    Na akármit csinálok, mindig a "wtf" hibaüzenetet kapom.

    Elvileg a formData üres, de megint csak elvileg annak mi nem is láthatjuk a tartalmát.

    HTTP 200 OK-al jön vissza a wtf hibaüzenet?

    Könyvtárak helyét, nevét ellenőriztem, a php.ini-t is.

    Mit nem veszek észre? :F :F

Új hozzászólás Aktív témák