laravel-jquery-fileinput-ile-ajax-post
26Eyl

laravel jquery fileinput ile ajax post

by kurtitasarimin php 0 Comment(s)

Merhabalar bu blog’da ilk yazım ve ilk tecrübelerimi sizinle paylaşmak istedim.! Bugünkü konum laravel jquery fileinput ile ajax post ile nasıl yapılır anlatmak istedim.

ilk olarak laravel 5 ve üzeri versiyon kullanıyorsanız aşağıdaki işlemler sizin sorununuzu çözmeye yeterli olacaktır daha alt bir laravel sürümü için uyarlama yapan veya yapar isem burada tekrar size bunu paylaşacağım.

Laravel 5.1 fileinput ajax upload

blade dosyanıza yazın!

$(".resimYukle").fileinput({
    showCaption: false,
    previewFileType: "image",
    maxFileCount: 1,
    allowedFileExtensions: ["jpg", "JPG", "jpeg", "JPEG", "png", "PNG", "pdf"],
    uploadAsync: false,
    //uploadUrl: "/upload.php",
    uploadUrl: "{!! route('nanunana.soru.resim') !!}",
    uploadExtraData: function() {
        return {
            id  : id,
            _token:"{{csrf_token()}}"
        }
    }
});

rotanıza ekleyin


Route::post('/resim',['as'=>'soru.resim','uses'=>'ResimController@soruResim']);

Controller


public function soruResim(Request $request)
{
    if( $request->method() == "POST")
    {
        $resim          =   Image::make($request->images);
        $resimYeniAd    =   Sentinel::getUser()->id. '_' . date('d_m_Y_') . '_0_' . $request->user()->sessionID . date("U") . '.jpg';
        $ext            =   $resim->save(config('app.adminUpload') . '/images/' . $resimYeniAd);
        if($ext)
        {
            $output     =  [];
        }
        else
        {
            $output     = ['error'=>'No files were processed.'.$resim->mime()];
        }
        echo json_encode($output);
    }
}
 

buradan önemli olan ve dikkat etmeniz gerekli alan ise

</pre>

uploadExtraData: function() { return { id : cevap.id, _token:"{{csrf_token()}}" }

bu kısımda laravel’in olmaz ise olmazı olan token bilgisini gönderiyoruz. Bu şekilde hatasız bir ajax yükleme işlemini yapmış oluyoruz.
Farklı olarak spagetti kod kullanmak isteyenler için ise

Spagetti kod

JQuery file

$(document).on("ready", function() {
    $("#images").fileinput({
        uploadAsync: false,
        uploadUrl: "/path/to/upload.php" // your upload server url
        uploadExtraData: function() {
            return {
                userid: $("#userid").val(),
                username: $("#username").val()
            };
        }
    });
});

PHP Code

// upload.php
// 'images' refers to your file input name attribute
if (empty($_FILES['images'])) {
    echo json_encode(['error'=>'No files found for upload.']); 
    // or you can throw an exception 
    return; // terminate
}

// get the files posted
$images = $_FILES['images'];

// get user id posted
$userid = empty($_POST['userid']) ? '' : $_POST['userid'];

// get user name posted
$username = empty($_POST['username']) ? '' : $_POST['username'];

// a flag to see if everything is ok
$success = null;

// file paths to store
$paths= [];

// get file names
$filenames = $images['name'];

// loop and process files
for($i=0; $i < count($filenames); $i++){ $ext = explode('.', basename($filenames[$i])); $target = "uploads" . DIRECTORY_SEPARATOR . md5(uniqid()) . "." . array_pop($ext); if(move_uploaded_file($images['tmp_name'][$i], $target)) { $success = true; $paths[] = $target; } else { $success = false; break; } } // check and process based on successful status if ($success === true) { // call the function to save all data to database // code for the following function `save_data` is not // mentioned in this example save_data($userid, $username, $paths); // store a successful response (default at least an empty array). You // could return any additional response info you need to the plugin for // advanced implementations. $output = []; // for example you can get the list of files uploaded this way // $output = ['uploaded' => $paths];
} elseif ($success === false) {
    $output = ['error'=>'Error while uploading images. Contact the system administrator'];
    // delete any uploaded files
    foreach ($paths as $file) {
        unlink($file);
    }
} else {
    $output = ['error'=>'No files were processed.'];
}

// return a json encoded response for plugin to process successfully
echo json_encode($output);
, , ,
LEAVE A REPLY

* *

*

Your email address will not be published. Required fields are marked*