หน้าเว็บ

วันจันทร์ที่ 11 สิงหาคม พ.ศ. 2557

PHP Ajax Upload for Zend Framwork


Easy way for create upload function by ajax for Zend Framwork, you can doing following this step.
1. create utils in model
2. create function uploadfile in utils model
3. call function in controller
4. create form in view


function in Utils Model
function uploadfile($file){
        $length = 5;
        $randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length); // for create random text before your file upload name
        $local_url = Zend_Registry::get('local_url');
        $uploaddir = 'uploads/'; // upload part
        $filename = iconv('UTF-8','TIS-620',$file['name']);
        $filename = $randomString .'-'.basename($filename);
        $filename = str_replace(' ', '', $filename);
        $uploadfile = $uploaddir .$filename;
        if (move_uploaded_file($file['tmp_name'], $uploadfile)) {
            return $filename;
        } else {
            echo "Possible file upload attack!\n";
        }
    }

function in Controller
$utils = new Application_Model_Utils(); // call utils model
$file = $utils->uploadfile($_FILES['file']);

form upload in View
<button class="button-style-1" onclick="$('#file').click();" >Upload</button>
<form id="upload-file" enctype="multipart/form-data" method="POST" action="action url">
    <input type="file" hidden id="file" name="file" onchange="upload_file();" />
</form>

<script>
function upload_file(){
        // action before upload here
        $('#upload-file').ajaxSubmit(function(data) {
            location.reload();
        });
}
</script>

ไม่มีความคิดเห็น:

แสดงความคิดเห็น